Element.getElementsByTagName 出现问题

发布于 2025-01-06 09:56:22 字数 554 浏览 0 评论 0原文

我在使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

李白 2025-01-13 09:56:22

您不能嵌套

标签。

您的嵌套

呈现为:

<p id="test"></p>
<p></p>
<p></p>
<p></p> <!-- From </p> -->

因此 a.getElementsByTagName('p') 是一个空集合。

You cannot nest <p> tags.

Your nested <p id="test"><p></p><p></p></p> is rendered as:

<p id="test"></p>
<p></p>
<p></p>
<p></p> <!-- From </p> -->

Hence a.getElementsByTagName('p') is an empty collection.

高跟鞋的旋律 2025-01-13 09:56:22

你的 HTML 将变成以下 dom:

<p id="test"> </p>
<p/>
<p/>
<p/>

因为你不能嵌套段落。

Your HTML will become the following dom:

<p id="test"> </p>
<p/>
<p/>
<p/>

because you can't nest paragraphs.

蓝眸 2025-01-13 09:56:22

P 块有一个特定的属性,它不会将块元素置于其范围内,如果您放置任何块元素(ul、li、div、p 等),它将从其块中推出。

<p id="test"></p>
<p></p>
<p></p>
<p></p>

它渲染成这样。

如果你想计算 p 块的数量,请尝试将其放置在 div 块内,如下所示

<div id="test">
    <p></p>
    <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.

<p id="test"></p>
<p></p>
<p></p>
<p></p>

It renderends like this .

If you want to count the p block try to place inside the div block like this

<div id="test">
    <p></p>
    <p></p>
</div>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文