2009-04-24 7 views
1

У меня есть около тысячи 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> 

Если я хочу, чтобы теперь получить доступ конкретного узла, скажут «Див # 10 div.5» - что это самое быстрое способ сделать это с помощью javascript DOM traversal? У меня уже есть значения индекса «10» и «5» - я просто ищу самый быстрый способ добиться этого.

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

+0

Имена классов и идентификаторы не должны начинаться с цифр ... – James

ответ

3

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

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

Следите за пробелов, что становится узлом https://developer.mozilla.org/En/Whitespace_in_the_DOM

+0

Да, спасибо, я думаю, что так быстро это может получиться! Хотя несправедливо сравнивать чистый JS с какой-либо конкретной библиотекой JS, в этом случае чистый JS является лучшим по скорости! – 2009-04-24 12:19:19

3

с помощью JQuery:

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

Я бы это сделал вторым. Это быстрее всего, по крайней мере, с точки зрения понимания семантики кода. –

4

Если у вас есть около 1000 DIVs Я предполагаю, что это автоматически генерируется 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 и не придется беспокоиться о заказе или интервала и т.д.

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

+0

О да! Спасибо, эта идея мне никогда не приходила в голову! – 2009-04-24 12:20:09

Смежные вопросы