Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么getElementByTagName中有未定义的返回_Javascript_Dom - Fatal编程技术网

Javascript 为什么getElementByTagName中有未定义的返回

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

我使用下面的代码获取html文档中
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特定的方法。他正在使用数组方法(长度)。