我有一个脚本,当我点击指定的按钮时会在网址中添加一个参数 - 下一次单击会将其替换为新的参数 - 这项工作很棒。
然而 - 现在我有三个按钮 - 我希望每个按钮都为网址分配一个参数 - 并替换任何其他按钮添加的任何参数。它也需要放在已经存在的参数之后。
所以:
(button1) click3: /m4n?ecom-query=imac&seid=etailer-products&viewMode=3?param=grid
(button2) click4: /m4n?ecom-query=imac&seid=etailer-products&viewMode=3?param=list
(button3) click5: /m4n?ecom-query=imac&seid=etailer-products&viewMode=3?param=smalllist
之前的网址?param是动态的,看起来可能不同。
$('.click2').on('click', function() {
console.log("Clicked");
var url = window.location.pathname;
var url = window.location.href;
if (url.indexOf('?param=list') > -1) {
url = url.replace("?param=list", "") + '?param=grid'
} else {
url = url.replace("?param=grid", "") + '?param=list'
}
window.location.href = url;
});
我该怎么做,我试图修改我现有的脚本,但没有运气。
答案 0 :(得分:1)
我认为您的方法存在一个小错误: url中的所有参数都应与& 所以现在你的网址应该是那样的
/m4n?ecom-query=imac&seid=etailer-products&viewMode=3¶m=grid
现在如果你想要替换旧的婴儿车,你还需要删除旧的值。为此,您可以使用正则表达式,如下面的代码
url = url.replace(/\¶m=.*/,'') + '¶m=list'
所以完整的代码是:
$('.click2').on('click', function() {
console.log("click2 Clicked");
var url = window.location.href;
url = url.replace(/\¶m=.*/,'') + '¶m=list';
window.location.href = url;
});
希望有所帮助