如何在每个循环中获取jQuery内的输入类?

时间:2011-03-09 23:38:38

标签: jquery loops

我有一个函数,当单击一个链接时,它会在列表项中附加输入。然后,我使用下面的代码使用每个循环遍历这些输入。它正如图所示正常工作,但不是使用field.name我想使用输入的类作为数组键,但是当我尝试这样做时,类显示为undefined。

以下是我目前使用的代码:

var values = {};
$.each($('li :input').serializeArray(), function(i, field) {
    values[field.name] = field.value;
});

一旦我使用jQuery append附加了隐藏的输入,这里是列表项中的代码:

<li><input type="hidden" name="group" class="group" value="2"/><input type="hidden" name="condition" class="condition" value="isany"/><input type="hidden" name="value" class="value" value="1,2"/></li>

我可以获得name属性,但是类总是未定义。

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:4)

尝试:

var values = {};
$('li :input').each(function() {
    values[$(this).attr('name')] = $(this).val();
});

我测试时的这项工作。

var values = {};
$('li input').each(function() {
    values[$(this).attr('class')] = $(this).val();
});
alert(JSON.stringify(values));

答案 1 :(得分:1)

我无法弄清楚如何使用$ .serializeArray,但这是有效的。 (如果您没有控制台,请将console.log更改为$("body").append

$.each($('input'),function(){console.log(this.className)})

请注意,您使用原生javascript this而不是jquery对象$(this)

答案 2 :(得分:0)

var values = {};
$.each($('li :input').serializeArray(), function(i, field) {
    values[$(field).attr('class')] = field.value;
});