1

我目前正在使用选择下拉列表和 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_1反之亦然filter_2。有任何想法吗?

4

1 回答 1

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, " "));
}

函数源自:如何在 JavaScript 中获取查询字符串值?

于 2012-08-09T15:39:15.823 回答