为什么undefined在getElementByTagName中返回

时间:2015-11-06 14:56:49

标签: javascript dom

我使用下面的代码来获取html文档中p标记的数量。我有2个p标记,但此代码为我返回"undefined"

document.write(document.getElementsByTagName('p').childElementCount);

2 个答案:

答案 0 :(得分:1)

childElementCount会返回 Node 所包含的孩子的数量。

document.getElementsByTagName()会返回 HTMLCollection - 包含Node个对象的集合 - 这些对象没有childElementCount属性。

要获取HTMLCollection中包含的元素总数,您只需使用其length属性:

document.getElementsByTagName('p').length;

答案 1 :(得分:0)

这应该适合你。

console.log(document.getElementsByTagName('p').length)

如果你想获得childElements:

,你也可以这样做
var paragraphs = document.getElementsByTagName('p');
console.log(paragraphs[0].childElementCount);

您遇到的问题是getElementsByTagName正在返回段元素的类数组对象。您需要一个这些元素,然后您可以在该元素上调用childElementCount

将以上内容粘贴到Chrome控制台调试程序中,您应该看到值输出。

http://jsfiddle.net/bryanray/pwaj4yjd/