不想在 href 中追加

do not want append in href

本文关键字:追加 href 不想      更新时间:2023-09-26

我想通过更改下拉列表来更改整个URL。

$('#year').on('change', function(){
    var year = $(this).val();
    window.location.href = window.location.href+"?year="+year;
});

我认为,上面的代码每次都应该更改整个URL。但是,当我多次执行此操作时,它开始在当前 URL 中附加year

我需要这样的东西:

example.com?year=2014
example.com?year=2015

现在,我得到:

 example.com?year=2014?year=2015

我将代码更改为:

$('#year').on('change', function(){
    var year = $(this).val();
    window.location.href = location.protocol + '//' + location.host + location.pathname+"?year="+year;
    OR
    window.location.href = location.pathname+"?year="+year;
});

您可以获取当前地址并使用正则表达式替换:

$('#year').on('change', function(){
    var year = $(this).val();
    old_href = window.location.href;
    new_href = old_href.replace(/(year=)[^'&]+/, '$1' + year);
    window.location.href = new_href;
});