select和div元素的长度

时间:2014-01-17 21:36:45

标签: javascript

为什么<select><div>元素的.length不同?

<select id="select"></select>
<div id="myDiv">My div!
    <div></div>
</div>
var select = document.getElementById('select');
var myDiv =  document.getElementById('myDiv');

console.log(select.length); // 0
console.log(myDiv.length);  // undefined

为什么带有选项的selectlength > 0,如果它有选项;但同样的情况不适用于div元素吗?

Fiddle

2 个答案:

答案 0 :(得分:1)

我们checkout the docs for Element.length

  

length返回NodeList中的项目数。

  

尽管此页面位于引用中,但length不是Element的属性,而是NodeList的属性。 NodeList对象是从许多DOM方法返回的,例如document.getElementsByTagName。

所以document.getElementById返回一个节点,返回NodeList。因此,单个节点上的length属性为undefined


您可能希望测量儿童列表的长度。

console.log(select.children.length);

最后,according to the docs HTMLSelectElement实现了length的版本,MDN将其定义为:

  

此select元素中的元素数。

的其他类型的大多数元素都具有此属性。这只是HTMLSelectElement的属性。

答案 1 :(得分:0)

standsgetElementById()返回元素。

并非所有元素都具有length的概念(定义此类属性)。