2010-04-09 17 views
21

Wie kann ich die Bestellnummer eines Elements von javascript/jquery erhalten?Wie erhält man die Bestellnummer des Elements?

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

Es gibt 3xli mit ABC-Klasse. Jetzt muss ich die Ordnungsnummer von Simon Li bekommen.

Vielen Dank im Voraus

Antwort

7

Sie können es so machen diese einen Selektor mit .index(), wie mit:

Ohne die Wähler, würden Sie Get 2, der Index der <li> in der übergeordneten insgesamt, unabhängig von der Klasse. You can view a quick demo here. Denken Sie daran, es ist ein 0-basierten Index, muss möglicherweise + 1 das Ergebnis für die Anzeige in einigen Fällen, hängt davon ab, wofür Sie es brauchen.

1

Nur eine Lösung für die @ Nick Craver Antwort. Ich versuchte, .index('.class_name') zu verwenden, und das fuhr fort, -1 für einen nicht gefunden zurückzubringen. Was ich dann tat, war .index($('.class_name')), was mir das beabsichtigte Ergebnis gab. Ich denke, es erfordert ein Dom-Knoten-Objekt für seinen Wert und nicht nur ein Selektor.

1

Für diejenigen von Ihnen, die You Might Not Need Jquery Ansatz bevorzugen, hier ist die Methode:

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

IE9 + Version:

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