Metodo filter

Il metodo filter mantiene nel set solo gli elementi che soddisfano un determinato selettore.

Sintassi

Filtraggio per selettore:

javascript.filter(selettore);

Il parametro può anche essere elementi DOM o un oggetto jQuery:

javascript.filter(elemento DOM o oggetto jQuery);

È anche possibile filtrare gli elementi utilizzando una funzione, che viene chiamata separatamente per ciascuno degli elementi selezionati. Se essa restituisce true, l'elemento corrente sarà incluso nel risultato finale, se false - non sarà incluso. Gli elementi stessi sono accessibili nella funzione, nella variabile this, e i loro numeri d'ordine nel set — nella variabile index:

javascript.filter(function(index, elem))

Esempio

Troviamo tutti i paragrafi, aggiungiamo all'inizio il testo '!' utilizzando prepend, poi otteniamo tra quelli trovati solo i paragrafi con classe www utilizzando filter e aggiungiamo alla fine il testo '?' utilizzando append:

html<p>testo</p>
<p>testo</p>
<p class="www">testo</p>
<p class="www">testo</p>
javascript$('p').prepend('!').filter('.www').append('?');

Il codice HTML diventerà così:

html<p>!testo</p>
<p>!testo</p>
<p class="www">!testo?</p>
<p class="www">!testo?</p>

Esempio

Utilizzando una funzione, troviamo tutti i paragrafi che contengono il tag strong e impostiamo loro il testo '!!!':

html<p><strong>testo</strong></p>
<p><strong>testo</strong></p>
<p>testo</p>
<p>testo</p>
javascript$('p').filter(function() {
  return $('strong', this).length === 1;
}).html('!!!');

Il codice HTML diventerà così:

html<p>!!!</p>
<p>!!!</p>
<p>testo</p>
<p>testo</p>

Vedi anche

  • metodo find,
    che trova elementi per selettore tra quelli già trovati
  • metodo has,
    che filtra il set di elementi selezionati in base ai discendenti