Самый быстрый способ получить доступ к узлу - PullRequest
1 голос
/ 24 апреля 2009

У меня около тысячи тегов 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' - какой самый быстрый способ сделать это с использованием обхода DOM javascript? У меня уже есть значения индекса «10» и «5» - я просто ищу самый быстрый способ добиться этого.

Большое спасибо.

Ответы [ 3 ]

4 голосов
/ 24 апреля 2009

Если у вас есть около 1000 DIV, я предполагаю, что это автоматически сгенерированный HTML?

Если да, то есть ли причина, по которой вы не можете добавить идентификатор и во внутренние DIVs?

<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 и не беспокоиться о порядке или интервале и т. Д.

Поскольку идентификаторы элементов на странице должны быть уникальными, это всегда должен быть самый быстрый способ поиска элемента.

3 голосов
/ 24 апреля 2009

Без проверки и предположения, что дочерние узлы являются единственными узлами и все в последовательности;

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

Остерегайтесь пробелов, которые становятся узлами https://developer.mozilla.org/En/Whitespace_in_the_DOM

3 голосов
/ 24 апреля 2009

с использованием jquery:

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