Przeszukiwanie jQuery - metoda not()

Przykład

Usunięcie akapitu o id "selected" z zestawu wszystkich akapitów:

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

Spróbuj sam

Definicja i użycie

Usunięcie elementów z zestawu dopasowanych.

Gramatyka 1

.not(selector)
Parametry Opis
selector Wartość ciągła, zawierająca wyrażenie selektora używane do dopasowania elementów.

Gramatyka 2

.not(element)
Parametry Opis
element Jeden lub kilka elementów DOM, które mają być usunięte z zestawu dopasowań.

Gramatyka 3

.not(function(index))
Parametry Opis
function(index) Funkcja używana do sprawdzania każdego elementu zestawu. this to bieżący element DOM.

Szczegółowe wyjaśnienie

Jeśli podamy obiekt jQuery reprezentujący zestaw elementów DOM, metoda .not() użyje podzestawu dopasowanych elementów do skonstruowania nowego obiektu jQuery. Zastosowany selektor będzie testował każdy element; elementy, które nie pasują do tego selektora, będą zawarte w wyniku.

Pomyśl o poniższej stronie z prostą listą:

<ul>
  <li>element listy 1</li>
  <li>element listy 2</li>
  <li>element listy 3</li>
  <li>element listy 4</li>
  <li>element listy 5</li>
</ul>

Możemy zastosować tę metodę do zestawu elementów listy:

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

Spróbuj sam

Wynik tego wezwania to ustawienie tła na czerwono dla elementów 2 i 4, ponieważ nie pasują do selektora (pamiętaj, że :even i :odd używają indeksów opartych na 0).

Usuwanie konkretnych elementów

Druga wersja metody .not() pozwala nam usunąć elementy z zestawu dopasowań, zakładając, że już wcześniej znaleźliśmy te elementy innymi sposobami. Na przykład, wyobraź sobie listę, która już zastosowała id do jednego z elementów:

<ul>
  <li>element listy 1</li>
  <li>element listy 2</li>
  <li id="notli">element listy 3</li>
  <li>element listy 4</li>
  <li>element listy 5</li>
</ul>

Możemy użyć pierwotnej funkcji JavaScript getElementById() do odczytania trzeciego elementu listy, a następnie usunięcia go z obiektu jQuery:

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

Spróbuj sam

To zdanie zmienia kolor tła elementów 1, 2, 3 i 5. Możemy wykonać to samo za pomocą prostszego wyrażenia jQuery, ale ta technika może być bardzo użyteczna, gdy inne biblioteki oferują odniesienia do czystych węzłów DOM.

Dla jQuery 1.4, metoda .not() może przyjmować funkcję jako parametr, podobnie jak metoda .filter(). Elementy, dla których funkcja zwraca true, są wykluczane z zestawu filtrów; wszystkie inne elementy są zawarte w nim.