Parcourir jQuery - méthode not()

Exemple

Retirer du ensemble de tous les paragraphes le paragraphe avec l'ID "selected":

$("p").not("#selected")

Essayez-le vous-même

Définition et utilisation

Supprimer un élément de la collection de correspondances avec not().

Syntaxe 1

.not(selector)
Paramètres Description
selector Valeur de chaîne, contenant l'expression de sélecteur utilisée pour correspondre aux éléments.

Syntaxe 2

.not(element)
Paramètres Description
element Un ou plusieurs éléments DOM à supprimer du jeu de correspondance.

Syntaxe 3

.not(function(index))
Paramètres Description
function(index) Fonction utilisée pour détecter chaque élément du jeu. this est l'élément DOM courant.

Explication détaillée

Si une collection d'éléments DOM est représentée par un objet jQuery, la méthode .not() construit un nouveau jQuery object à partir d'un sous-ensemble des éléments correspondants. Le sélecteur appliqué détecte chaque élément ; les éléments qui ne correspondent pas au sélecteur sont inclus dans le résultat.

Pensez à la page suivante avec une simple liste :

<ul>
  <li>élément de liste 1</li>
  <li>élément de liste 2</li>
  <li>élément de liste 3</li>
  <li>élément de liste 4</li>
  <li>élément de liste 5</li>
</ul>

Nous pouvons appliquer cette méthode au jeu d'éléments de liste :

$('li').not(':even').css('background-color', 'red');

Essayez-le vous-même

Le résultat de cette appel est de définir le fond de couleur rouge pour les éléments 2 et 4, car ils ne correspondent pas au sélecteur (rappelez-vous, :even et :odd utilisent un index basé sur 0).

Suppression d'éléments spécifiques

La deuxième version de la méthode .not() permet de supprimer des éléments du jeu de correspondance, supposons que nous ayons déjà trouvé ces éléments par d'autres moyens. Par exemple, imaginez une liste qui a appliqué un id à l'un des éléments :

<ul>
  <li>élément de liste 1</li>
  <li>élément de liste 2</li>
  <li id="notli">élément de liste 3</li>
  <li>élément de liste 4</li>
  <li>élément de liste 5</li>
</ul>

Nous pouvons utiliser la fonction JavaScript native getElementById() pour lire le troisième élément de la liste, puis le supprimer de l'objet jQuery :

$('li').not(document.getElementById('notli')).css('background-color', 'red');

Essayez-le vous-même

Cette instruction change la couleur de fond des éléments 1, 2, 3 et 5. Nous pouvons utiliser une expression jQuery plus simple pour faire la même chose, mais cette technique peut être très utile lorsque d'autres bibliothèques fournissent des références aux nœuds DOM purs.

Pour jQuery 1.4, la méthode .not() peut utiliser une fonction en tant que paramètre, comme la méthode .filter(). Les éléments pour lesquels la fonction retourne true sont exclus du jeu de filtrage ; tous les autres éléments sont inclus.