我正在使用此选项将变量传递给查询字符串,选择下拉列表和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
的方法,反之亦然。有什么想法吗?
答案 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, " "));
}