我想找到用jquery替换一个url查询参数

时间:2012-10-20 14:50:29

标签: javascript jquery html

我想用另一个参数替换动态url查询参数。

EG。像我的网址是:

http://www.mysite.com/209-0539.prd?pageLevel=&skuId=111-4567&sc_cmp=pcp_GSF_Batteries+%26+Electrical+Accessories_209-0539

我想替换

之后的所有内容
&sc_cmp=pcp_GSF_Batteries+%26+Electrical+Accessories_209-0539

并添加类似&的内容新的静态字符串

我的最终网址应如下所示:

http://www.mysite.com/209-0539.prd?pageLevel=&skuId=111-4567&新的静态字符串。

由于

2 个答案:

答案 0 :(得分:2)

我建议您使用酷URI.js库,然后就像以下一样简单:

var url = "http://www.mysite.com/209-0539.prd?pageLevel=&skuId=111-4567&sc_cmp=pcp_GSF_Batteries+%26+Electrical+Accessories_209-0539";

url = URI(url).removeSearch("sc_cmp").addSearch("newvar","newval");

// http://www.mysite.com/209-0539.prd?pageLevel=&skuId=111-4567&newvar=newval
alert(url);

见工作demo

答案 1 :(得分:1)

如果您不想包含其他库,则可以在下面添加任意数量的搜索项,并添加任意数量的搜索项,而无需添加大量代码

/* array of search keys to remove*/
var removeSearch = ['sc_cmp']; 

/* array of new search items*/
var newSearchitem = ['image=cool']; 
var url = location.href; 

var pageUrl = url.split('?')[0];

var urlSearch = url.split('?')[1].split('&');
/* store search items in array */
var newSearchArr = [];
/* loop over exisiting search items and store keepers*/
for (i = 0; i < urlSearch.length; i++) {
    var key = urlSearch[i].split('=')[0];
    if ($.inArray(key, removeSearch) == -1) {
        newSearchArr.push(urlSearch[i])
    }
}

$.merge(newSearchArr, newSearchitem);

var newUrl = pageUrl + '?' + newSearchArr.join('&')

DEMO: http://jsfiddle.net/9VPUX/