从jQuery的.each()返回结果

时间:2011-08-11 14:51:00

标签: javascript jquery lambda each

我的“堆栈”完全溢出,所以我需要帮助:)

我试图从FORM中获取所有值并将它们保存到关联数组中。这是一个代码:

var dat = [];
$('form[name=' + form.name + '] input[name], form[name=' + form.name + '] select[name], form[name=' + form.name + '] textarea[name]').each(function(i,el) {
   dat[$(this).attr('name')] = $(this).val();
});

我正在等待这段代码后所有值都变成dat,但看起来dat是.each()lambda函数的内部变量,所以在.each()完成后它就不可用了。

如何从循环中返回结果dat []?

1 个答案:

答案 0 :(得分:2)

试试这个

function() getFormData(){
    var dat = {};

    $('form[name=' + form.name + ']').find('input[name], select[name], textarea[name]').each(function(i,el) {
       dat[$(this).attr('name')] = $(this).val();
    });
    return dat;
}

此函数将返回一个json对象,其中包含选择器中指定的所有表单元素名称/值对。