使用Javascript修改任意URL的参数
我想使用Javascript更改URL中可用的任何参数 例: =>使用Javascript修改任意URL的参数,javascript,Javascript,我想使用Javascript更改URL中可用的任何参数 例: => 我尝试了几种方法,但没有达到预期的效果。您可以帮我解决吗?您正在更改的URL部分是查询字符串,可从位置。搜索属性获得。它是一个由URI编码的键=值对分隔的序列 您可以按如下方式将其拆分: var search = location.search.charAt(0) === '?' ? location.search.substring(1) : location.search; var pairs = search.split(
我尝试了几种方法,但没有达到预期的效果。您可以帮我解决吗?您正在更改的URL部分是查询字符串,可从
位置。搜索属性获得。它是一个由URI编码的键=值
对分隔的序列
您可以按如下方式将其拆分:
var search = location.search.charAt(0) === '?' ? location.search.substring(1) : location.search;
var pairs = search.split('&').map(function(pair) {
return pair.split('=');
});
然后搜索对
查找对[0]
为kw
的一个,并替换其值:
pairs.some(function(pair) {
if (pair[0] === 'kw') {
pair[1] = encodeURIComponent(yourNewValue);
return true;
}
});
(Array#一些
循环遍历数组的条目,并在从回调返回true
时停止。)
然后分配结果:
location.search = '?' + pairs.join('&');
…将在窗口中加载带有新查询字符串的页面
旁注:上面使用了自ES5以来新的两个阵列特性。两者都是“可填充”的,所以如果您需要支持IE8,您将需要ES5填充。(搜索“es5垫片”将为您提供选项。)因此,如果我理解正确,您只需更新URL即可。然后你只需要编辑它
使用jQuery:
$("#myLink").attr("href", myNewHref);
纯Javascript:
myLink.href = myNewHref;
其中myNewHref
可以使用字符串操作进行更新,例如split
函数或正则表达式来获取URL()的第一部分,然后在字符“?”后获取参数。“我尝试了几种方法”比如什么?“……但没有达到预期的效果。”以何种方式?发生了什么事而不是你期望的?仅供参考-我尝试了你的map
codearray[index]=pair.split('=')代码>,但这对我(ChromeV33)不起作用,因为对[0]
和对[1]
被设置为未定义的。相反,我不得不使用returnpair.split('=')代码>哪一个起了作用。@JasonEvans:啊,是的,我在那里做了两件事的组合。使用map
并返回拆分,或者使用forEach
(并分别创建数组)。她打字太快了。固定的。