Maison > interface Web > tutoriel CSS > JQuery prend-il vraiment en charge tous les sélecteurs CSS ?

JQuery prend-il vraiment en charge tous les sélecteurs CSS ?

Linda Hamilton
Libérer: 2024-10-31 06:03:30
original
356 Les gens l'ont consulté

Does jQuery Truly Support All CSS Selectors?

Prise en charge des sélecteurs jQuery : dévoiler les mystères

Bien que jQuery offre une prise en charge étendue des sélecteurs CSS, certains sélecteurs comme :nth-last-child() restent insaisissables. Cependant, ce n'est pas aussi simple qu'il y paraît.

Implémentation partielle des sélecteurs CSS3 par jQuery

Malgré la conformité revendiquée avec les sélecteurs de niveau 3, l'implémentation des sélecteurs de jQuery est insuffisante dans certains domaines. , comme précisé dans sa documentation. Il s'appuie sur sa bibliothèque de sélecteurs sous-jacente, Sizzle, qui prend en charge la plupart des sélecteurs de niveau 3, mais pas tous.

Sélecteurs pris en charge et non pris en charge

À partir de jQuery 1.9, Sizzle prend en charge presque tous les sélecteurs de niveau 3 sauf :

  • Pseudo-éléments
  • Pseudo-classes dynamiques comme :link/:visited et :hover
  • Préfixes d'espace de noms

De plus, jQuery a ajouté ses propres sélecteurs.

:nth-last-child() en action

Le :nth-last-child( ) le sélecteur semble fonctionner dans certains navigateurs car jQuery exploite document.querySelectorAll(). Les navigateurs prenant en charge à la fois :nth-last-child() et document.querySelectorAll(), comme Firefox, Chrome et IE9, renvoient une liste de nœuds que jQuery peut utiliser.

Mécanisme de repli et compatibilité IE8

Si document.querySelectorAll() échoue, jQuery revient à Sizzle. Cependant, Sizzle ne prend pas en charge :nth-last-child(). Étant donné qu'IE8 n'implémente pas document.querySelectorAll(), le mécanisme de secours échoue, entraînant un échec sur IE8.

Solutions alternatives

La mise à niveau vers jQuery 1.9 ou version ultérieure résout le problème :nth-last-child(). Alternativement, jQuery fournit des extensions de sélecteur personnalisées pour implémenter des pseudo-classes non prises en charge.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal