相关疑难解决方法(0)

查找父节点中子节点索引的最快方法

我想找到具有id的子div的索引'whereami'.

<div id="parent">
   <div></div>
   <div></div>
   <div id="whereami"></div>
   <div></div>
</div>
Run Code Online (Sandbox Code Playgroud)

目前我正在使用此函数来查找子项的索引.

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);
Run Code Online (Sandbox Code Playgroud)

小提琴:http://jsfiddle.net/grantk/F7JpH/2/

问题
当有数千个div节点时,while循环必须遍历每个div来计算它们.这可能需要一段时间.

有没有更快的方法来解决这个问题?

*请注意,id将更改为不同的div节点,因此需要能够重新计算.

html javascript dom

33
推荐指数
2
解决办法
3万
查看次数

是否有可能在其父节点中获取元素的数字索引而不进行循环?

通常我这样做:

for(i=0;i<elem.parentNode.length;i++) {
  if (elem.parentNode[i] == elem) //.... etc.. etc...
}
Run Code Online (Sandbox Code Playgroud)

javascript dom

32
推荐指数
3
解决办法
2万
查看次数

标签 统计

dom ×2

javascript ×2

html ×1