jquery的index()方法 搜索匹配的元素,並返回相應元素的索引值,從0開始計數。
如果不給 .index() 方法傳遞參數,那么返回值就是這個jQuery對象集合中第一個元素相對於其同輩元素的位置。
如果參數是一組DOM元素或者jQuery對象,那么返回值就是傳遞的元素相對於原先集合的位置。
如果參數是一個選擇器,那么返回值就是原先元素相對於選擇器匹配元素中的位置。如果找不到匹配的元素,則返回-1。
1 <ul> 2 <li id="foo">foo</li> 3 <li id="bar">bar</li> 4 <li id="baz">baz</li> 5 </ul>
1 $('li').index(document.getElementById('bar')); //1,傳遞一個DOM對象id為bar,返回這個對象在原先集合中的索引位置 2 $('li').index($('#bar')); //1,傳遞一個jQuery對象 3 $('li').index($('li:eq(0)')); //1,傳遞一組jQuery對象,返回這個對象中第一個元素在原先集合中的索引位置 4 $('#bar').index('li'); //1,傳遞一個選擇器,返回#bar在所有li中的索引位置 5 $('#bar').index(); //1,不傳遞參數,返回這個元素在同輩中的索引位置。
jquery獲取元素索引值index()示例
1 <div id="nav"> 2 <a href="http://www.51xuediannao.com/">建站素材</a> 3 <a href="http://www.51xuediannao.com/">jquery特效</a> 4 <a href="http://www.51xuediannao.com/">懶人主機</a> 5 <a href="http://www.51xuediannao.com/qd63/">前端路上</a> 6 </div>
1 $("#nav a").click(function(){ 2 var index1 = $("#nav a").index(this); 3 var index2 = $("#nav a").index($(this)); 4 var index3 = $(this).index() 5 var index3 = $(this).index("a") 6 alert(index3); 7 return false; 8 });
上面是介紹的知識,然后自己實際運用中經常會出現
$(this).index() 返回值為一直為-1的情況。
$(this).index() 返回值為一直為-1,導致圖片無法正常滾動,說明找不到匹配的元素。
比如下面的例子。
想要知道<ul>下的一堆<li>中,自己點擊的<li>的索引值是什么,原文如下:
1 1 $("li").hover(function(){ 2 2 alert($("li").index(this)); 3 3 });
使用起來很簡單,我的代碼是
1 1 $("#mainleft .menu li").click(function(){ 2 2 $("#mainleft .menu li.current").removeClass("current"); 3 3 $(this).addClass("current"); 4 4 var index = $("#mainleft .menu li").index(this); 5 5 alert(index); 6 6 });
下一個引用:
如果 列表里面 有N多的列表項目 我想知道我點擊了哪一個 應該怎么取呢?
jQuery 里面 提供了一個 index() 方法 :index(subject)
搜索與參數表示的對象匹配的元素,並返回相應元素的索引值值。
如果找到了匹配的元素,從0開始返回;如果沒有找到匹配的元素,返回-1。
但是 API里面提供的例子貌似不對
1 <ul> 2 <li><a href="#nogo">這里是一個序列</a></li> 3 <li><a href="#nogo">這里是一個序列</a></li> 4 <li><a href="#nogo">這里是一個序列</a></li> 5 <li><a href="#nogo">這里是一個序列</a></li> 6 <li><a href="#nogo">這里是一個序列</a></li> 7 <li><a href="#nogo">這里是一個序列</a></li> 8 </ul>
如上所示,這是一個無序列表 我要點擊任意一個列表項目 要求得到該項目的序列 該怎么樣呢?
1 $(document).ready(function(){ 2 $("#act li").click(function(){ 3 alert( $( "#act li" ).index( $(this)[0] ) ); 4 }) 5 })
也可以寫成
alert($('#act li').index(this)[0]);或者 alert($('#act li').index(this));
$( "#act li" ).index( $(this)[0] ) [0]灰常重要哦~