jQuery Esplorazione - metodo not()

Esempio

Elimina il paragrafo con id "selected" dalla raccolta di tutti i paragrafi:

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

Prova a fare tu stesso

Definizione e utilizzo

not() Elimina l'elemento dalla raccolta di elementi corrispondenti.

Sintassi 1

.not(selector)
Parametro Descrizione
selector Valore di stringa, che contiene l'espressione di selettore utilizzata per abbinare gli elementi.

Sintassi 2

.not(element)
Parametro Descrizione
element Un elemento DOM o più elementi DOM da rimuovere dal set di match.

Sintassi 3

.not(function(index))
Parametro Descrizione
function(index) Funzione utilizzata per verificare ogni elemento della raccolta. this è l'elemento DOM corrente.

Spiegazione dettagliata

Se fornito un oggetto jQuery che rappresenta una raccolta di elementi DOM, il metodo .not() costruirà un nuovo oggetto jQuery con un sottoinsieme di elementi che corrispondono al selettore applicato. Il selettore sarà verificato per ogni elemento; gli elementi che non corrispondono al selettore saranno inclusi nel risultato.

Pensa a questa pagina con una lista semplice:

<ul>
  <li>elemento elenco 1</li>
  <li>elemento elenco 2</li>
  <li>elemento elenco 3</li>
  <li>elemento elenco 4</li>
  <li>elemento elenco 5</li>
</ul>

Possiamo applicare questo metodo al set di elementi elenco:

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

Prova a fare tu stesso

Il risultato di questa chiamata è che gli elementi 2 e 4 vengono impostati con sfondo rosso, perché non corrispondono al selettore (ricorda, :even e :odd utilizzano un index basato su 0).

Rimozione di elementi specifici

La seconda versione del metodo .not() ci permette di rimuovere elementi dal set di match, presupponendo che我们已经通过其他手段找到了这些元素。Ad esempio, immagini un elenco che ha già applicato un id a uno dei suoi elementi:

<ul>
  <li>elemento elenco 1</li>
  <li>elemento elenco 2</li>
  <li id="notli">elemento elenco 3</li>
  <li>elemento elenco 4</li>
  <li>elemento elenco 5</li>
</ul>

Possiamo utilizzare la funzione JavaScript nativa getElementById() per leggere il terzo elemento dell'elenco, quindi rimuoverlo dall'oggetto jQuery:

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

Prova a fare tu stesso

Questa istruzione cambia il colore di sfondo degli elementi 1, 2, 3 e 5. Possiamo completare la stessa cosa con un'espressione jQuery più semplice, ma questa tecnica è molto utile quando ad esempio altri repository offrono riferimenti a nodi DOM puri.

Per jQuery 1.4, il metodo .not() può accettare una funzione come parametro, allo stesso modo del metodo .filter(). Gli elementi per cui la funzione restituisce true vengono esclusi dal set di filtraggio; tutti gli altri elementi vengono inclusi.