使用jQuery将多个变量附加到查询字符串

时间:2012-08-09 15:30:11

标签: jquery

我正在使用此选项将变量传递给查询字符串,选择下拉列表和jQuery:

$("#filter_1").change(function(e) {
  window.location.href = '?filter_1=' + $(this).val()
});
$("#filter_2").change(function(e) {
  window.location.href = '?filter_2=' + $(this).val()
});

这很有效。但是,如果在已经传递filter_2变量后选择filter_1,则filter_1会在查询字符串中被覆盖。我现在需要的是一种附加filter_1filter_2的方法,反之亦然。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

在这里,您可以创建一个函数,为您解析查询字符串并返回所请求密钥的key=value(如果存在),如果不存在则返回空字符串。

$("#filter_1").change(function(e) {
   window.location.href = '?filter_1=' + $(this).val() + 
      querystring('filter_2', '&');
});
$("#filter_2").change(function(e) {
   window.location.href = '?filter_2=' + $(this).val() + 
      querystring('filter_1', '&');
});


function querystring(name, prefix)
{
  name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
  var regexS = "[\\?&]" + name + "=([^&#]*)";
  var regex = new RegExp(regexS);
  var results = regex.exec(window.location.search);
  if(results == null)
    return '';
  else
    return (prefix||'')+name+'='+ decodeURIComponent(results[1].replace(/\+/g, " "));
}

功能来自:How can I get query string values in JavaScript?