为什么在getElementByTagName中返回undefined

why undefined returns in getElementByTagName

本文关键字:返回 undefined getElementByTagName 为什么      更新时间:2023-09-26

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

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

childElementCount返回单个Node包含的子级数。

document.getElementsByTagName()返回一个不具有childElementCount属性的HTMLCollection(包含Node对象的集合)。

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

document.getElementsByTagName('p').length;

这应该对您有效。

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/