How can I add or update a query string parameter?

后端 未结 27 2818
别那么骄傲
别那么骄傲 2020-11-22 02:35

With javascript how can I add a query string parameter to the url if not present or if it present, update the current value? I am using jquery for my client side development

27条回答
  •  隐瞒了意图╮
    2020-11-22 03:24

    Use this function to add, remove and modify query string parameter from URL based on jquery

    /**
    @param String url
    @param object param {key: value} query parameter
    */
    function modifyURLQuery(url, param){
        var value = {};
    
        var query = String(url).split('?');
    
        if (query[1]) {
            var part = query[1].split('&');
    
            for (i = 0; i < part.length; i++) {
                var data = part[i].split('=');
    
                if (data[0] && data[1]) {
                    value[data[0]] = data[1];
                }
            }
        }
    
        value = $.extend(value, param);
    
        // Remove empty value
        for (i in value){
            if(!value[i]){
                delete value[i];
            }
        }
    
        // Return url with modified parameter
        if(value){
            return query[0] + '?' + $.param(value);
        } else {
            return query[0];
        }
    }
    

    Add new and modify existing parameter to url

    var new_url = modifyURLQuery("http://google.com?foo=34", {foo: 50, bar: 45});
    // Result: http://google.com?foo=50&bar=45
    

    Remove existing

    var new_url = modifyURLQuery("http://google.com?foo=50&bar=45", {bar: null});
    // Result: http://google.com?foo=50
    

提交回复
热议问题