Element.getElementsByTagName 出现问题
我在使用 Element.getElementsByTagName
方法时遇到一些问题。
使用以下 HTML:
<p id="test">
<p></p>
<p></p>
</p>
和以下 Javascript:
var a = document.getElementById('test');
var b = a.getElementsByTagName('p');
console.log(a);
console.log(b);
a
设置为换行段落,但 b
设置为空 NodeList(示例:http://jsfiddle.net/xGjMN/)。
我预计 b
包含两个内部段落元素。我在这里完全误解了什么吗?
I'm having some trouble using the Element.getElementsByTagName
method.
With the following HTML:
<p id="test">
<p></p>
<p></p>
</p>
And the following Javascript:
var a = document.getElementById('test');
var b = a.getElementsByTagName('p');
console.log(a);
console.log(b);
a
is set to the wrapping paragraph, but b
is set to an empty NodeList (example: http://jsfiddle.net/xGjMN/).
I excpected b
contain the two inner paragraph elements. Am I completely misunderstanding something here?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您不能嵌套
标签。
您的嵌套
呈现为:
因此
a.getElementsByTagName('p')
是一个空集合。You cannot nest
<p>
tags.Your nested
<p id="test"><p></p><p></p></p>
is rendered as:Hence
a.getElementsByTagName('p')
is an empty collection.你的 HTML 将变成以下 dom:
因为你不能嵌套段落。
Your HTML will become the following dom:
because you can't nest paragraphs.
P 块有一个特定的属性,它不会将块元素置于其范围内,如果您放置任何块元素(ul、li、div、p 等),它将从其块中推出。
它渲染成这样。
如果你想计算 p 块的数量,请尝试将其放置在 div 块内,如下所示
P block has a certain property it don't take the block element inside its scope , if you place any block element(ul,li,div,p etc) it will push out from its block.
It renderends like this .
If you want to count the p block try to place inside the div block like this