我有一个函数,当单击一个链接时,它会在列表项中附加输入。然后,我使用下面的代码使用每个循环遍历这些输入。它正如图所示正常工作,但不是使用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属性,但是类总是未定义。
有人可以帮忙吗?
答案 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;
});