Javascript 替换并向url添加3个不同的参数

Javascript 替换并向url添加3个不同的参数,javascript,jquery,Javascript,Jquery,我有一个脚本,当我单击指定的按钮时,它会将一个参数添加到url中-下一步单击会将其替换为一个新的参数-这非常有用 但是-现在我有三个按钮-我希望每个按钮都为url分配一个参数-并用任何其他按钮替换添加的任何参数。它还需要放在已经存在的参数后面的最后一个 因此: Prefore?param的url是动态的,看起来可能会有所不同 $('.click2').on('click', function() { console.log("Clicked"); var url = window

我有一个脚本,当我单击指定的按钮时,它会将一个参数添加到url中-下一步单击会将其替换为一个新的参数-这非常有用

但是-现在我有三个按钮-我希望每个按钮都为url分配一个参数-并用任何其他按钮替换添加的任何参数。它还需要放在已经存在的参数后面的最后一个

因此:

Prefore?param的url是动态的,看起来可能会有所不同

$('.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;
});

我如何做到这一点,我试图修改我现有的脚本,但没有运气

我认为你的方法有一个小错误: url中的所有参数都应与& 所以现在你的url应该是这样的

 /m4n?ecom-query=imac&seid=etailer-products&viewMode=3&param=grid
现在,如果你想替换旧的婴儿车,你还需要删除旧的值。为此,您可以在下面的代码中使用正则表达式

url = url.replace(/\&param=.*/,'') + '&param=list'
因此,完整的代码是:

$('.click2').on('click', function() {
    console.log("click2 Clicked");
    var url = window.location.href;
    url = url.replace(/\&param=.*/,'') + '&param=list';
    window.location.href = url;
});

希望有帮助

是的,效果很好。谢谢你的解释-这看起来很简单!
$('.click2').on('click', function() {
    console.log("click2 Clicked");
    var url = window.location.href;
    url = url.replace(/\&param=.*/,'') + '&param=list';
    window.location.href = url;
});