2012-09-14 50 views
1

我需要在jQuery集合中找到特定的元素位置。在jQuery對象中查找元素的位置

例如在一個元素的集合中,我需要知道具有「活動」類的元素的數字位置。

<ul> 
    <li><a href="#"></a></li> 
    <li><a class="active" href="#"></a></li> 
    <li><a href="#"></a></li> 
</ul> 

我假設使用索引將是要走的路,但無論什麼位置的活動,返回0。

$('ul li a').index('.active'); 

是否有任何簡單的方法來做到這一點?

回答

6

試試這個:

$('ul li a.active').index(); 

注意,即使通過使用正確的語法,此代碼總是返回0因爲有李標籤中只有一個錨鏈接,你可以找到李父元素的索引來代替。

$('ul li:has(a.active)').index(); 
+0

這將返回0。這是收集

  • 我假設中的第一項? –

    +0

    @MichaelGruber是的,我正在更新代碼。 – undefined

    4

    嘗試:

    $('ul li a').each(function(i) { 
        if ($(this).hasClass('active')) console.log(i); 
    });​ 
    

    jsFiddle example

    或者

    console.log ($('ul li:has(a.active)').index());​ 
    
    -1

    $( 「UL李一」)的每個(函數(I){

    if($(this).hasClass("active")){ 
    alert(i)   
    } 
    

    });

    我希望這將解決您的問題

    +0

    http://jsfiddle.net/ – Apurv

    0

    這應該這樣做:

    $('ul li a').index($('ul li a.active')); 
    

    如果你傳遞一個DOM元素或jQuery對象,以index它返回的那個位置元素/對象在原始集合中。

    jsfiddle的完整性

    0

    着想怎麼樣:

    $('li').index($('.active').parent())