jquery中index()
jquery中index()index() 方法返回指定元素相对于其他指定元素的 index 位置。
一、语法
$(selector).index( [ element] )
其中:element 为可选,表示指定元素的对象。
二、index()使用时注意事项
1、索引值从0开始计数
2、如果不给 .index() 方法传递参数,那么返回值就是这个jQuery对象集合中第一个元素相对于其同辈元素的位置。
3、如果参数是一组DOM元素或者jQuery对象,那么返回值就是传递的元素相对于原先集合的位置。
4、如果参数为String类型,则将其视作选择器,返回当前jQuery对象的第一个元素
在选择器所匹配的元素中的索引位置。如果该选择器不匹配任何元素或者当前jQuery对象的第一个元素
不在匹配到的元素内,则返回-1。
四、index()实例
1、
![]()
<ul>
<li id="foo">foo</li>
<li id="bar">bar</li>
<li id="baz">baz</li>
</ul>
![]()
<script>
![]()
$('li').index(document.getElementById('bar')); //1,传递一个DOM对象,返回这个对象在原先集合中的索引位置
$('li').index($('#bar')); //1,传递一个jQuery对象
$('li').index($('li:gt(0)')); //1,传递一组jQuery对象,返回这个对象中第一个元素在原先集合中的索引位置
$('#bar').index('li'); //1,传递一个选择器,返回#bar在所有li中的做引位置
$('#bar').index(); //1,不传递参数,返回这个元素在同辈中的索引位置。
![]()
</script>
2、
![]()
<ul>
<li id="foo">foo</li>
<li id="bar">bar</li>
<li id="baz">baz</li>
</ul>
![]()
<script>
![]()
$('#bar').index() //返回值是1,而不是0
![]()
</script>
![]()
//原因:
![]()
// 因为不传入参数,index()返回的是与('#bar')同辈的位置,而在上述例子当中li是与下面的li同辈的,所以返回值是1
3、
![]()
<li id="n1">
<li id="n2">
<span id="n3"></span>
<ul id="n4">
<li id="n5">item1</li>
<li id="n6">item2</li>
<li id="n7">item3</li>
</ul>
<span id="n8"></span>
</li>
</li>
![]()
![]()
<script>
![]()
// 省略参数: 返回第一个li元素在所有同辈元素中的索引
document.writeln( $("li").index( ) ); // 0
![]()
![]()
// 参数为DOM元素: 返回n6在$li中的索引
document.writeln( $("li").index( document.getElementById("n6") ) ); // 1
![]()
![]()
// 参数为jQuery对象: 返回$("#n7")在$li中的索引
document.writeln( $("li").index( $("#n7") ) ); // 2
![]()
![]()
// 参数为选择器字符串: 返回$li中的第一个元素(即n5)在选择器"#n4"所匹配的元素中的索引
// 选择器"#n4"匹配的元素只有n4一个,没有n5,因此返回-1
document.writeln( $("li").index( "#n4" ) ); // -1
![]()
![]()
// 省略参数:n4在同辈元素中的索引,n4之前的同辈元素有一个n3,因此返回索引为1
document.writeln ( $("#n4").index( ) ); // 1
![]()
![]()
// 参数为选择器字符串:n8在选择器"span"所匹配的元素中的索引
// 选择器"span"匹配n3、n8两个元素,n8是其中的第二个元素,因此返回索引为1
document.writeln ( $("#n8").index( "span" ) ); // 1
![]()
</script>