Я хочу найти индекс дочернего div, который имеет id 'whereami'
.
<div id="parent">
<div></div>
<div></div>
<div id="whereami"></div>
<div></div>
</div>
В настоящее время я использую эту функцию для поиска индекса дочернего элемента.
function findRow(node){
var i=1;
while(node.previousSibling){
node = node.previousSibling;
if(node.nodeType === 1){
i++;
}
}
return i; //Returns 3
}
var node = document.getElementById('whereami'); //div node to find
var index = findRow(node);
скрипт: http://jsfiddle.net/grantk/F7JpH/2/
Проблема
Когда есть тысячи узлов div, цикл while должен проходить через каждый div, чтобы подсчитать их. Это может занять некоторое время.
Есть ли более быстрый способ справиться с этим?
* Обратите внимание, что идентификатор изменится на разные divs node, поэтому он должен будет иметь возможность пересчитать.