2010-04-09 15 views
21

Jak mogę uzyskać numer porządkowy jakiegoś elementu przez javascript/jquery?Jak uzyskać numer porządkowy elementu

<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> 

Istnieje 3xli z klasą abc. Teraz potrzebuję uzyskać kolejność (sekwencję) numeru Simona li.

góry dzięki

Odpowiedz

7

Można zrobić to w ten sposób za pomocą przełącznika z .index(), tak:

Bez selektora, wy mieliście uzyskać 2, indeks <li> w całości nadrzędnej, niezależnie od klasy. You can view a quick demo here. Należy pamiętać, że jest to indeks bazujący na 0, może być konieczne wyświetlenie wyniku w niektórych przypadkach, zależnie od tego, do czego jest potrzebny.

1

Po prostu poprawka do odpowiedzi @Nick Craver. Próbowałem przy użyciu .index('.class_name') i że nadal zwracając -1 dla nie znaleziono. To co zrobiłem to .index($('.class_name')), co dało mi zamierzony rezultat. Domyślam się, że wymaga obiektu węzła dom dla jego wartości, a nie tylko selektora.

1

Dla tych z Was, którzy preferują You Might Not Need Jquery podejścia, tutaj jest metoda:

wersja
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; 
} 
Powiązane problemy