Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 关于相同类型元素的元素索引?_Javascript_Jquery - Fatal编程技术网

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

Javascript 关于相同类型元素的元素索引?,javascript,jquery,Javascript,Jquery,可能重复: 使用JQuery,在忽略其他类型的同级元素的情况下,获取同一类型的其他同级元素的索引的最佳方法是什么 <span/> <span/> <div/> <span/> <-- index of this guy in regard to just span tags? (answer: 2) 关于如何通过比较元素引用使用jQuery执行此操作的示例: jquery解决方案: javascript解决方案: 已测试的html:

可能重复:

使用JQuery,在忽略其他类型的同级元素的情况下,获取同一类型的其他同级元素的索引的最佳方法是什么

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


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

jquery解决方案:

javascript解决方案:

已测试的html:


A.
B
C
D
E

循环是过度的,有一个jquery方法叫做
index
。如果您要达到这个程度并使用
getElementById
,为什么还要用jquery呢?@JamesMontagne感谢James提供的信息,我不知道。更新了算法以提高效率。
var tested_element = document.getElementById('tested');
alert( $('#test').children('span').index(tested_element) ); // result: 2
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);
<div id="test">
    <span>A</span>
    <span>B</span>
    <div>C</div>
    <span id="tested">D</span>
    <span>E</span>
</div>