访问节点的最快方式

发布于 2024-07-17 14:57:28 字数 415 浏览 4 评论 0 原文

我有大约数千个 DIV 标签,其结构如下:

<div id="1">
    <div class="1"></div>
    <div class="2"></div>
    ...
</div>

<div id="2">
    <div class="1"></div>
    <div class="2"></div>
    ...
</div>

如果我现在想访问特定节点,请说“div#10 div.5” - 使用 javascript DOM 遍历实现此操作的最快方法是什么? 我已经有了索引值“10”和“5” - 我只是在寻找实现此目标的最快方法。

多谢。

I have about thousand DIV tags structured this way:

<div id="1">
    <div class="1"></div>
    <div class="2"></div>
    ...
</div>

<div id="2">
    <div class="1"></div>
    <div class="2"></div>
    ...
</div>

If I want to now access a particular node, say 'div#10 div.5' - what is the fastest way to do it using javascript DOM traversal? I already have the index values "10" and "5" - I am just looking for the fastest way to achieve this.

Thanks a lot.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(3

原野 2024-07-24 14:57:28

如果你有大约 1000 个 DIV,我认为这是自动生成的 html?

如果是这样,是否有什么原因不能将 id 添加到内部 DIV 中?

<div id="1">
    <div id="1.1" class="1"></div>
    <div id="1.2" class="2"></div>
    ...
</div>

<div id="2">
    <div id="2.1" class="1"></div>
    <div id="2.2" class="2"></div>
    ...
</div>

然后您可以只使用 getElementById 而不必担心顺序或间距等。

由于元素 id 在页面上必须是唯一的,因此这应该始终是查找元素的最快方法。

If you've got about 1000 DIVs I assume this is auto generated html?

If so, is there any reason why you can't add an id to the inner DIVs too?

<div id="1">
    <div id="1.1" class="1"></div>
    <div id="1.2" class="2"></div>
    ...
</div>

<div id="2">
    <div id="2.1" class="1"></div>
    <div id="2.2" class="2"></div>
    ...
</div>

Then you can just use getElementById and not have to worry about ordering or spacing etc.

Since element ids have to be unique on the page then this should always be the fastest way to look up the element.

云醉月微眠 2024-07-24 14:57:28

未经验证并假设子节点是唯一的节点并且全部按顺序排列;

document.getElementById('10').childNodes[4];

注意成为节点的空格 https://developer.mozilla.org/En/Whitespace_in_the_DOM

Without validation and assuming the child nodes are the only nodes and all in sequence;

document.getElementById('10').childNodes[4];

Watch out for whitespace that becomes a node https://developer.mozilla.org/En/Whitespace_in_the_DOM

二智少女 2024-07-24 14:57:28

使用jquery:

alert($("#10 > .5").html());

using jquery:

alert($("#10 > .5").html());
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文