不想附加在href中

时间:2015-01-28 16:30:03

标签: javascript jquery

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

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

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

我需要这样的东西:

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

现在,我得到了:

 example.com?year=2014?year=2015

2 个答案:

答案 0 :(得分:0)

我将代码更改为:

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

答案 1 :(得分:0)

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

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