访问节点的最快方法

时间:2009-04-24 11:32:50

标签: javascript html dom traversal

我有大约数千个以这种方式构建的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” - 我只是在寻找实现这一目标的最快方法。

非常感谢。

3 个答案:

答案 0 :(得分:4)

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

如果是这样,是否有任何理由不能为内部DIV添加id?

<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必须在页面上是唯一的,因此这应该始终是查找元素的最快方法。

答案 1 :(得分:3)

使用jquery:

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

答案 2 :(得分:3)

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

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

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

的空白