如何从jQuery.map获取关联数组作为输出?

时间:2011-12-03 21:18:13

标签: javascript jquery

使用JQuery map函数获取输入数组'值:

var inputs = $("[id^='field']");
var values = inputs.map(function () { 
                             return $(this).val(); 
                        }).get();

我想获得[id,value]的关联数组:

{
   id1: value1, 
   id2: value2
}

2 个答案:

答案 0 :(得分:6)

.map()返回一个数组,所以如果你想要一个id值作为键的对象,你就可以这样做:

function getFieldValues() {
    var values = {};
    $("[id^='field']").each(function() {
        values[this.id] = this.value;
    });
    return values;
}

答案 1 :(得分:1)

var values = inputs.map(function () { 
                             var obj = {};
                             obj[ this.id ] = $(this).val(); 
                             return obj;
                        }).get();

如果他们不是selectradio输入,请使用this.value代替$(this).val()

或者,如果您只想要一个对象,请使用.each

var obj = {};
inputs.each(function () { 
                             obj[ this.id ] = $(this).val(); 
                        });

如果您确实需要一组对象,并且您的输入具有name属性,则还可以使用serializeArray

var values = inputs.serializeArray();