/ / Die korrekte Verwendung von jQuery index (); ? Es wird immer -1 zurückgegeben - Abfrage, Funktion, Indizierung

Die korrekte Verwendung von jQuery index (); ? Es liefert immer -1 - Jquery, Funktion, Indizierung

Ich weiß nicht, warum das passiert. Aber jedes Mal, wenn ich es tue (elem).index(); Es kommt immer zurück -1 . Warum das?

Wie finde ich den Index eines Objekts?

Antworten:

2 für die Antwort № 1

Von dem jQuery.index() Dokumentationunter vielen Beispielen:

Rückgabewerte

Wird kein Argument an den übergeben .index() Bei dieser Methode ist der Rückgabewert eine Ganzzahl, die die Position des ersten Elements im jQuery-Objekt relativ zu seinen gleichgeordneten Elementen angibt.

Ob .index() wird für eine Sammlung von Elementen aufgerufen und ein DOM-Element oder ein jQuery-Objekt wird übergeben. .index() Gibt eine Ganzzahl zurück, die die Position des übergebenen Elements relativ zur ursprünglichen Sammlung angibt.

Wenn eine Auswahlzeichenfolge als Argument übergeben wird, .index() Gibt eine Ganzzahl zurück, die die Position des ursprünglichen Elements relativ zu den vom Selektor übereinstimmenden Elementen angibt. Wenn das Element nicht gefunden wird, .index() Gibt -1 zurück.

Beachten Sie den letzten Satz. Offenbar elem wird einfach nicht gefunden. Überprüfen Sie Ihren Selektor und / oder das Element.


Aktualisieren Gemäß den Kommentaren rufen Sie es wahrscheinlich im falschen Moment auf. Hier ist eine SSCCE, kopieren Sie "n" Einfügen "n" und führen Sie sie aus.

<!DOCTYPE html>
<html lang="en">
<head>
<title>SO question 3740385</title>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
alert("Before DOM ready: " + $(".nav ul li:first").index()); // Can return -1.

$(document).ready(function() {
alert("After DOM ready: " + $(".nav ul li:first").index()); // Must return 0.
});
</script>
</head>
<body>
<div class="nav">
<ul>
<li>item</li>
<li>item</li>
<li>item</li>
</ul>
</div>
</body>
</html>

Siehe auch: