jQuery-Selektoren verwirrend

8

Ich würde mich freuen, wenn mich jemand auch auf theoretische Quellen verweisen würde, damit ich es besser verstehen kann.

Angenommen, ich habe den folgenden HTML-Code:

%Vor%

und dieser JavaScript-Code:

%Vor%

Ich bekomme 1,2,1 als Ausgabe. Ich kann verstehen, warum ich im letzten Fall 1 bekam, aber warum ist die 1. und 2. Zeile des JavaScript-Codes, die mir verschiedene Ausgaben geben.

Geige: Ссылка

    
Ishan Soni 27.05.2016, 08:11
quelle

3 Antworten

5

eq ist ein seltsamer jQuery-Selektor, der nicht wirklich mit der CSS-basierten Logik der meisten Selektoren konsistent ist (Hervorhebung in dieser Dokumentation) Auszug):

  

Die indexbezogenen Selektoren (: eq (),: lt (),: gt (),: even,: odd) filtern die Menge der Elemente, die den ihnen vorausgehenden Ausdrücken entsprechen

Kurz gesagt, eq(0) im ersten Fall gilt für das ganze ul li .

$("anything :eq(0)") kann höchstens ein Element zurückgeben.

Im zweiten Fall wird der "li:eq(0)" Selektor von find auf alle Übereinstimmungen von $("ul") angewandt.

    
Denys Séguret 27.05.2016, 08:17
quelle
1

alert($("ul li:eq(0)").length); = & gt; Länge des ersten li innerhalb von ul, :eq(0) gibt immer 1 oder 0 Elemente zurück.

alert($("ul").find("li:eq(0)").length); = & gt; Häufigkeit, mit der eine li innerhalb von ul endet

alert($("ul").find("li").eq(0).length); = & gt; Anzahl der Wiederholungen li endet innerhalb von ul

    
Ani Menon 27.05.2016 08:21
quelle
0

Sie können den folgenden Link durchgehen, um einen besseren Überblick über: eq & amp; .eq () Ссылка

Wenn Sie noch Zweifel haben, hier ist ein mögliches Duplikat dieser Frage: Unterschied zwischen ": eq ()" und .eq ()

    
Aalok Mishra 27.05.2016 08:17
quelle

Tags und Links