对象之间的差异(javascript和jquery)

时间:2012-10-25 18:15:57

标签: javascript jquery object

这可能是一个奇怪的问题。我试图将两个数组融合在一起,但读出显示它们是不同类型的对象。由.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);

任何人都知道我在这里缺少什么?

1 个答案:

答案 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选择器,其中每个元素都是某种HTMLDivElementHTMLInputElementHTMLTableElement等。< / p>