关于相同类型元素的元素索引?

时间:2012-07-19 19:07:01

标签: javascript jquery

  

可能重复:
  Get position of selected elements, not index of element in DOM

使用JQuery,对于同一类型的其他兄弟,获取元素索引的最佳方法是什么,忽略其他类型的兄弟姐妹?

<span/>
<span/>
<div/>
<span/> <-- index of this guy in regard to just span tags? (answer: 2)

1 个答案:

答案 0 :(得分:1)

通过比较元素引用如何使用jQuery执行此操作的示例:

jquery解决方案:

var tested_element = document.getElementById('tested');
alert( $('#test').children('span').index(tested_element) ); // result: 2

javascript解决方案:

var tested = document.getElementById('tested');
var container = document.getElementById('test');
var node = container.childNodes[0];
var position = 0;
while ( node && node != tested ){
    if (node.nodeType == 1 && node.tagName == 'SPAN') {
        position++;
    }
    node = node.nextSibling;
}
if (!node) {
    position = -1; // element not found
}
alert(position);

测试了html:

<div id="test">
    <span>A</span>
    <span>B</span>
    <div>C</div>
    <span id="tested">D</span>
    <span>E</span>
</div>