Javascript 为什么getElementByTagName中有未定义的返回
我使用下面的代码获取html文档中Javascript 为什么getElementByTagName中有未定义的返回,javascript,dom,Javascript,Dom,我使用下面的代码获取html文档中p标记的计数。我有2个p标记,但此代码为我返回“未定义”: document.write(document.getElementsByTagName('p').childElementCount); 这应该对你有用 console.log(document.getElementsByTagName('p').length) 如果要获取子元素,也可以执行此操作: var paragraphs = document.getElementsByTagName('p
p
标记的计数。我有2个p
标记,但此代码为我返回“未定义”
:
document.write(document.getElementsByTagName('p').childElementCount);
这应该对你有用
console.log(document.getElementsByTagName('p').length)
如果要获取子元素,也可以执行此操作:
var paragraphs = document.getElementsByTagName('p');
console.log(paragraphs[0].childElementCount);
您面临的问题是getElementsByTagName
返回段落元素的类数组对象。您需要获取这些元素中的一个,然后可以对该元素调用childElementCount
将上述内容粘贴到Chrome控制台调试器中,您应该会看到一个值输出
childElementCount
返回单个节点包含的子节点数
document.getElementsByTagName()
返回一个HTMLCollection
-包含节点
对象的集合-该集合没有childElementCount
属性
要获取HTMLCollection
中包含的元素总数,只需使用其length
属性:
document.getElementsByTagName('p').length;
document.getElementsByTagName
返回元素的集合,如果只需要计数,则需要对其进行迭代,然后使用.length
,不是.childElementCount
你可以试试@Tushar的方法,看看它是否能给你同样的结果-但是.length
似乎能满足你的需求,根据你的要求。我不能用.childElementCount
来计算,对吗?当然可以。更新了一个示例。它不是元素的“数组”,而是活动的。它是一个类似数组的对象。更新为更具体。HTMLCollection接口表示元素(按文档顺序)的通用集合(类似数组的对象),并提供从列表中选择的方法和属性。--你为什么说它比实际需要的更复杂?它基本上是一个数组。。。他想把它用作数组。他没有尝试使用HTMLCollection特定的方法。他正在使用数组方法(长度)。