Przeszukiwanie jQuery - metoda not()
Przykład
Usunięcie akapitu o id "selected" z zestawu wszystkich akapitów:
$("p").not("#selected")
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');
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');
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.