这可能是一个奇怪的问题。我试图将两个数组融合在一起,但读出显示它们是不同类型的对象。由.serializeArray()jquery函数收集的第一个类型在我提醒它时显示为:
[object Object]
第二个,我从使用更多JS方式推动每个选项得到的,显示如下:
[object HTMLOptionElement]
以下是我的代码:
incrCopy();
enableSubmit();
disableReset();
var linkedInArray = [];
$('form select option.linked-in').each( function() {
linkedInArray.push(this);
})
//These alert the second way
prevVals = $("form").serializeArray();
//They alert the first way
prevVals.push(linkedInArray);
alert(prevVals);
任何人都知道我在这里缺少什么?
答案 0 :(得分:2)
这不是jQuery和JavaScript之间的区别。这就是serializeArray
的工作原理。它不返回HTML元素列表,它返回具有名称/值属性的普通旧对象列表。
例如,是否可以找到这样的东西:
<input name="user[eye_color]" value="brown" />
<input name="user[age]" value="47" />
它将返回一个普通旧对象数组,看起来像这样:
[
{
name: "user[eye_color]",
value: "brown"
},
{
name: "user[age]",
value: 47
}
]
相反,你的第一个循环遍历jQuery选择器,其中每个元素都是某种HTMLDivElement
,HTMLInputElement
,HTMLTableElement
等。< / p>