Metodo filter
Il metodo filter mantiene nel set solo
gli elementi che soddisfano
un determinato selettore.
Sintassi
Filtraggio per selettore:
.filter(selettore);
Il parametro può anche essere elementi DOM o un oggetto jQuery:
.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:
.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:
<p>testo</p>
<p>testo</p>
<p class="www">testo</p>
<p class="www">testo</p>
$('p').prepend('!').filter('.www').append('?');
Il codice HTML diventerà così:
<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 '!!!':
<p><strong>testo</strong></p>
<p><strong>testo</strong></p>
<p>testo</p>
<p>testo</p>
$('p').filter(function() {
return $('strong', this).length === 1;
}).html('!!!');
Il codice HTML diventerà così:
<p>!!!</p>
<p>!!!</p>
<p>testo</p>
<p>testo</p>