处理多个值传递时的查询字符串参数

时间:2016-02-09 12:02:15

标签: jquery

以下是我的剧本

$("#locSearchSubmitBtn").click(function(){          
        var locname = $("#location").val();
        var qparam = window.location.search.replace(/[\\?&]q=([^&#]*)/g,'')
        history.pushState({},"qparam", '?q='+locname+qparam);
        //alert(locname);
        $("input[type=checkbox]:checked").each(function(index,ele) {

            var qparam = window.location.search.replace(/[\\?&]q=([^&#]*)/g,'').replace(/[\\?&]tloc=([^&#]*)/g,'');
            history.pushState({},"qparam", '?q='+locname+qparam+'&tloc='+ele.value);
        });
        $("#specialitycenters li.selected").each(function (index,ele) {
            ele = $(this).text();               
            var qparam = window.location.search.replace(/[\\?&]q=([^&#]*)/g,'').replace(/[\\?&]sc=([^&#]*)/g,'');
            history.pushState({},"qparam", '?q='+locname+qparam+'&sc='+ele);
        });

    });

这里我试图获取复选框选中的值并将它们附加到URL。 但是,如果我选择了多个复选框,则无法传递多个值。

网址构建如

http://portalauthv2tst:10039/wps/myportal/childrenspublic/testpages/newsearch/?q=&tloc=Hospital_or_ER

这里tloc是保存复选框值的参数,在第二次按钮点击时,如果我选择了两个复选框,之前的tloc值正在删除,而新的值正在追加。

如何使用每个函数附加多个复选框值。

1 个答案:

答案 0 :(得分:0)

In javascript, that's just a string:

var url = 'http://example.com/mypage?vendorId=1&vendorId=2&vendorId=3'
var qs = url.split('?')[1];
var parts = qs.split('&');
var arr = [];

$.each(parts, function() {
    var val = this.split('=')[1];
    arr.push(val);
});

FIDDLE

or the short way:

var arr = $.map(window.location.split('?')[1].split('&'), function(e,i) { 
    return e.split('=')[1];
});