我正在尝试为搜索查询动态创建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);
});

10-05 20:52
查看更多