Vide
Mes notes sur jQuery
3 - Sélecteurs
31 janvier 2014

Cette page traite des sélecteurs utilisés pour identifier les parties d'un document qu'on veut formater. J'y présente toutes les formes que peuvent prendre les sélecteurs individuels et en montrant comment les composer.

En jQuery comme en CSS, les sélecteurs sont des règles de reconnaissance de formes (pattern matching) qui déterminent les règles de style qui vont s'appliquer aux éléments dans l'arborescence d'un document: ce sont les sélecteurs. Leur complexité peut aller d'un simple nom de balise (par exemple ul pour la balise <ul>) à une expression très complexe (par exemple #mon_id .ma_classe>[title=mon_titre]). Cependant, les éléments du document qui seront sélectionnés seront ceux qui rencontrent les exigences du sélecteur. Lorsque c'est le cas, c'est toujours l'élément "contenu" de la balise qui est affecté par les règles de style ou sélectionné par jQuery.

Syntaxe des sélecteurs

Ainsi, le sélecteur universel * sélectionne tout dans la page alors que le sélecteur ul sélectionne toutes les balises <ul> de la page. # suivi de mon_id sélectionne la balise dont l'identificateur est "mon_id" (elle doit être unique dans la page), le sélecteur . suivi de ma_classe sélectionnera toutes les balises de classe "ma_classe" alors que [name] sélectionnera toutes les balises qui ont un attribut "name".

À un niveau de complexité un peu plus élevé, on retrouve alors les sélecteurs suivants:

Sélecteurs composites

On peut aussi combiner plusieurs sélecteurs individuels en des sélecteurs composites comprenant des association de sélecteurs individuels. Cette composition s'effectue avec les notations suivantes:

Maintenant qu'on sait comment sélectionner les éléments sur lesquels on veut agir, regardons comment ces règles CSS vont influer sur l'apparence de la page.

// affiche les titres des éléments <h1> de la page
$('h1, h2').each(function(index, value){
  $('#local').append('<li class="child" rel="2"><a href="#anchor-'+index+'">'+$(this).html()+'</a></li>');
  $(this).html('<a name="anchor-'+index+'">'+$(this).html()+'</a>');
})

Liste des sélecteurs

Pour que le traitement des sélecteurs soit complet, j'ai inclus dans la table qui suit tous les sélecteurs individuels qui existent quoiqu'ils soient moins utilisés de façon courante:

Sélecteur Exemple Description
:root :root sélectionne l'élément racine
:empty p:empty sélectionne chaque élément <p> qui n'a pas d'enfant (incluant le noeud contenu)
:not(selector) :not(p) sélectionne tous les éléments qui ne sont pas des éléments <p>
:link a:link sélectione tous les liens qui n'ont pas été visités
:visited a:visited sélectionne tous les liens qui ont été visités
:active a:active sélectionne tous les liens actifs
:hover a:hover sélectionne les liens lors d'un survol de la souris
:enabled input:enabled sélectionne chaque élément <input> qui est en fonction (enabled);
:disabled input:disabled sélectionne chaque élément <input> qui n'est pas en fonction (disabled)
:checked input:checked sélectionne chaque élément <input> qui est "checked"
:focus input:focus

sélectionne l'élément <input> qui a le "focus"

:first-letter p:first-letter

sélectionne la première lettre de chaque élément <p>

:first-line p:first-line

sélectionne la première ligne de chaque élément <p>

:first-child p:first-child

sélectionne chaque élément <p> qui est le premier enfant de son parent

:first-of-type p:first-of-type sélectionne chaque élément <p> qui est le premier élément <p> de son parent;
:last-of-type p:last-of-type sélectionne chaque élément <p> qui est le dernier élément <p> de son parent;
:only-of-type p:only-of-type sélectionne chaque élément <p> qui est le seul élément <p> de son parent
:only-child p:only-child sélectionne chaque élément <p> qui est le seul enfant de son parent
:nth-child(n) p:nth-child(2) sélectionne chaque élément <p> qui est le 2e enfant de son parent
:nth-last-child(n) p:nth-last-child(2) sélectionne chaque élément <p> qui est le 2e enfant de son parent, en comptant à partir du dernier enfant
:nth-of-type(n) p:nth-of-type(2) sélectionne chaque élément <p> qui est le 2e élément <p> de son parent
:nth-last-of-type(n) p:nth-last-of-type(2) sélectionne chaque élément <p> qui est le 2e élément <p> de son parent en comptant à partir du dernier enfant
:last-child p:last-child sélectionne chaque élément <p> qui est le dernier enfant de son parent
:before p:before

Insère le contenu avant celui de chaque élément <p>

:after p:after

Insérer le contenu après chaque élément <p>

::selection ::selection sélectionne la partie d'un élément sélectionné par l'usager


Pour toute question ou commentaire
E-Mail
page modifiée le 14 février 2015 à 14:12:26. []