为什么form.elements返回"对象"元素?

时间:2016-10-26 08:45:10

标签: html5

"元件" "形式的属性" HTML5中的元素返回" object"元素。 https://www.w3.org/TR/html5/forms.html#category-listed

但我不能假设"对象"元素作为用户可输入字段。为什么"对象包括在内?

代码示例:

<form id="form1">
  <object id="foobar">
  </object>
</form>

var form = document.getElementById('form1');
var elements = form.elements;
for (var i = 0; i < elements.length; i++) {
   console.log(elements[i].id); // outputs "foobar"
}

1 个答案:

答案 0 :(得分:0)

我希望下面的代码片段能够澄清一些事情。

正如您在运行以下代码时所看到的,此表单中的元素是Object以及ElementHTMLElementHTMLInputElement

欢迎来到精彩的继承世界。

&#13;
&#13;
var form = document.getElementById('form');
var elements = form.elements;

for (var i=0; i<elements.length; i++) {
  var element = elements[i];

  console.log("Element with name: " + element.name);
  console.log("Element is Object: " + (element instanceof Object));
  console.log("Element is Element: " + (element instanceof Element));
  console.log("Element is HTMLElement: " + (element instanceof HTMLElement));
  console.log("Element is HTMLInputElement: " + (element instanceof HTMLInputElement));
}
&#13;
<form id="form">
  <input name="text" type="text">
</form>
&#13;
&#13;
&#13;