Heim > Artikel > Web-Frontend > Unterstützt jQuery wirklich alle CSS-Selektoren?
jQuerys Selektorunterstützung: Enthüllung der Geheimnisse
Während jQuery umfangreiche CSS-Selektorunterstützung bietet, gibt es bestimmte Selektoren wie :nth-last-child() bleiben schwer fassbar. Allerdings ist es nicht so einfach, wie es scheint.
Teilweise Implementierung von CSS3-Selektoren durch jQuery
Obwohl die Konformität mit Selectors Level 3 behauptet wird, ist die Selektorimplementierung von jQuery in einigen Bereichen unzureichend , wie in der Dokumentation erläutert. Es basiert auf der zugrunde liegenden Selektorbibliothek Sizzle, die die meisten, aber nicht alle Level-3-Selektoren unterstützt.
Unterstützte und nicht unterstützte Selektoren
Ab jQuery 1.9 unterstützt Sizzle fast alle Level-3-Selektoren außer:
Darüber hinaus hat jQuery eine eigene hinzugefügt Selektoren.
:nth-last-child() in Aktion
Der Selektor :nth-last-child() scheint in einigen Browsern zu funktionieren, da jQuery Dokumente nutzt .querySelectorAll(). Browser, die sowohl :nth-last-child() als auch document.querySelectorAll() unterstützen, wie Firefox, Chrome und IE9, geben eine Knotenliste zurück, die jQuery verwenden kann.
Fallback-Mechanismus und IE8-Kompatibilität
Wenn document.querySelectorAll() fehlschlägt, greift jQuery auf Sizzle zurück. Allerdings unterstützt Sizzle :nth-last-child() nicht. Da IE8 document.querySelectorAll() nicht implementiert, schlägt der Fallback-Mechanismus fehl, was zu einem Fehler in IE8 führt.
Alternative Lösungen
Ein Upgrade auf jQuery 1.9 oder höher wird behoben das :nth-last-child()-Problem. Alternativ bietet jQuery benutzerdefinierte Selektorerweiterungen zum Implementieren nicht unterstützter Pseudoklassen.
Das obige ist der detaillierte Inhalt vonUnterstützt jQuery wirklich alle CSS-Selektoren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!