如何获取元素订单号

时间:2010-04-09 08:23:51

标签: javascript jquery

如何通过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>

abc类有3xli。现在我需要获得Simon li的订单(序列)号。

提前致谢

4 个答案:

答案 0 :(得分:30)

使用Jquery的 index() 方法

答案 1 :(得分:7)

你可以使用.index()的选择器这样做,如下所示:

$('li:contains(Simon)').index('.abc'); //returns 1, it's 0 based
//Or this...
$('li').filter(':contains(Simon)').index('.abc'); //returns 1

如果没有选择器,您将获得2,即父级中<li>的索引,无论该类如何。 You can view a quick demo here。请记住,这是一个基于0的索引,在某些情况下可能需要+ 1显示结果,取决于您的需要。

答案 2 :(得分:2)

对于那些喜欢You Might Not Need Jquery方法的人,以下是方法:

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

IE8及更少:

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

答案 3 :(得分:1)

只是修复了@Nick Craver的答案。我尝试使用.index('.class_name')并保持返回-1以找不到。我当时做的是.index( $('.class_name') ),它给了我预期的结果。我想它需要一个dom节点对象来获取它的值,而不仅仅是一个选择器。