2012-10-20 32 views
0

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

例如,就像我的网址是:

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&新的静态字符串。

感谢

+0

请问这有帮助吗? http://stackoverflow.com/a/10235376/733347 –

+0

你应该先告诉我们你到目前为止所尝试过的。它也将帮助您了解更多 – Luca

回答

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/

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

+0

+1这是一个不错的图书馆。 – insertusernamehere