我试图为搜索查询动态创建ajax数据$ key和$ value。我有三个下拉菜单,当一个更改时我想循环通过每个菜单来获取它们的值并为我的ajax数据创建一个$ key + $值。
到目前为止我已经:
$(document).on("change", ('select'), function(e){
$('select').each(function(i, val){
value = $(this).val();
param_name = $(this).attr("name");
var query = { };
query['' + param_name + ''] = value;
console.log(query);
});
search(query);
});
但是,这当然会创建3个不同的查询,而不是一个组合。
或者有一种方法可以在更改过滤器后简单地添加/更新搜索查询,而不是每次都循环遍历每个过滤器。
答案 0 :(得分:2)
您需要在循环外声明query
对象,以便每个事件只有一个对象
$(document).on("change", ('select'), function(e){
var query = { };
$('select').each(function(i, val){
value = $(this).val();
param_name = $(this).attr("name");
query[ param_name] = value;
console.log(query);
});
search(query);
});
更短的版本:
$(document).on("change", ('select'), function(e){
var query = { };
$('select').each(function(i, val){
query[ this.name] = this.value;
});
search(query);
});