我想用另一个参数替换一个动态 url 查询参数。
例如。就像我的网址是:
我想从之后开始更换所有东西
&sc_cmp=pcp_GSF_Batteries+%26+Electrical+Accessories_209-0539
并添加类似& new Static string
我的最终网址应如下所示:
http://www.mysite.com/209-0539.prd?pageLevel=&skuId=111-4567&新的静态字符串。
谢谢
我想用另一个参数替换一个动态 url 查询参数。
例如。就像我的网址是:
我想从之后开始更换所有东西
&sc_cmp=pcp_GSF_Batteries+%26+Electrical+Accessories_209-0539
并添加类似& new Static string
我的最终网址应如下所示:
http://www.mysite.com/209-0539.prd?pageLevel=&skuId=111-4567&新的静态字符串。
谢谢
我推荐你使用很酷的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);
请参阅工作演示。
如果您不想包含另一个库,以下可让您添加想要删除的搜索项,并添加任意数量的搜索项,而无需大量代码
/* 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('&')
演示:http: //jsfiddle.net/9VPUX/