2010-04-09 64 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; 
}