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: Ссылка
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.
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
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 ()
Tags und Links jquery jquery-selectors