在其他参数之前将param添加到url

时间:2016-02-10 12:53:22

标签: jquery

我的网址如下:

/Apple-iMac-Core-i5-2-7-GHz-8-GB-1-TB-LED-2?prodid=30811

我想在问号之前添加一个参数,以便网址如下所示:

/Apple-iMac-Core-i5-2-7-GHz-8-GB-1-TB-LED-2?param=prodlist&prodid=30811

今天我使用的脚本在每次点击时在两个参数之间切换 - 我想改变它,所以我有三个按钮,每个按钮只给网址一个参数,每个按钮应该用自己的值替换参数。

我现在用来切换参数的脚本:

$('.click3').on('click', function() {
    console.log("Clicked");
    var baseUrl = window.location.href.split("?")[0];
    var prodid = getParametersByName("prodid");
    var params = getParametersByName("param");

    if (params == "prodlist") 
        param = "grid"; 
    else 
        param = "prodlist";

    var newUrl = baseUrl + "?param=" + param;

    if ((prodid).length > 0) 
        newUrl = newUrl + "&prodid=" + prodid;

    window.location.href = newUrl;

    function getParametersByName(name) { 
        name = name.replace(/[[]/, "\[").replace(/[]]/, "\]"); 
        var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"), 
            results = regex.exec(location.search); 
        return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")); 
    } 
});

基本上我想要这样的东西,但不是在url之后添加值 - 我希望它在参数已经到位之前。

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

0 个答案:

没有答案