我正在尝试为搜索查询动态创建Ajax数据$ key和$ value。我有三个下拉菜单,当一个更改时,我想循环遍历每个菜单以获取它们的值,并为我的ajax数据创建一个$ key + $ value。
到目前为止,我已经:
$(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个不同的查询,而不是一个组合。
还是有一种方法可以在更改过滤器后简单地添加/更新搜索查询,而不是每次都遍历每个查询。
最佳答案
您需要在循环外声明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);
});