2010-04-09 65 views
21

如何獲取某些元素的訂單號由javascript/jquery?如何獲取元素訂單號

<ul> 
<li>Anton</li> 
<li class="abc">Victor</li> 
<li class="abc">Simon</li> 
<li>Adam</li> 
<li>Peter</li> 
<li class="abc">Tom</li> 
</ul> 

有3xli與ABC類。現在我需要獲得Simon李的訂單(序列號)。

在此先感謝

回答

7

您可以使用選擇與.index(),這樣做是這樣的:

沒有選擇,你會獲得2,父母整體中的<li>的索引,不管類別如何。 You can view a quick demo here。請記住這是一個基於0的索引,在某些情況下可能需要+ 1顯示的結果,取決於您需要的結果。

1

只需修復@Nick Craver的答案。我嘗試使用.index('.class_name'),並保持返回-1找不到。我當時做的是.index($('.class_name')),它給了我預期的結果。我想它需要一個dom節點對象的值,而不僅僅是一個選擇器。

1

對於那些你們誰喜歡You Might Not Need Jquery方法,這裏是方法:

function index(el) { 
    if (!el) return -1; 
    var i = 0; 
    do { 
     if (el.nodeType === 1) i++; 
     el = el.previousSibling; 
    } while (el) 
    return i; 
} 

IE9 +版本:

function index(el) { 
    if (!el) return -1; 
    var i = 0; 
    do { 
     i++; 
    } while (el = el.previousElementSibling); 
    return i; 
}