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

replacing and adding 3 different params to the url

本文关键字:参数 URL 添加 替换      更新时间:2023-09-26

我有一个脚本,当我单击分配的按钮时,它会向 url 添加一个参数 - 接下来单击将其替换为新的参数 - 这很好。

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

所以:

 (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

参数之前的 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 中的所有参数都应与 &所以现在你的网址应该是这样的

 /m4n?ecom-query=imac&seid=etailer-products&viewMode=3&param=grid

现在,如果要替换旧 PRAM,则还需要删除旧值。为此,您可以使用正则表达式,如以下代码所示

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;
});

希望对你有帮助