filter-metodi
filter-metodi jättää joukkoon vain
ne elementit, jotka täyttävät
tietyn valitsimen ehdon.
Syntaksi
Suodatus valitsimen mukaan:
.filter(valitsin);
Parametri voi olla myös DOM-elementtejä tai jQuery-objekti:
.filter(DOM-elementti tai jQuery-objekti);
Elementtejä voidaan suodattaa myös
funktion avulla, jota kutsutaan erikseen
jokaiselle valituille elementeille. Jos se
palauttaa true, nykyinen elementti lisätään
lopputulokseen, jos false
- ei lisätä. Elementit ovat saatavilla funktiossa
muuttujassa this, ja niiden järjestysnumerot
joukossa — muuttujassa index:
.filter(function(index, elem))
Esimerkki
Etsitään kaikki kappaleet, lisätään niiden
alkuun teksti '!' käyttämällä
prepend-metodia,
saadaan sitten löydetyistä vain kappaleet,
jotka sisältävät luokan www käyttämällä filter-metodia
ja lisätään niiden loppuun teksti '?' käyttämällä
append-metodia:
<p>teksti</p>
<p>teksti</p>
<p class="www">teksti</p>
<p class="www">teksti</p>
$('p').prepend('!').filter('.www').append('?');
HTML-koodi muuttuu seuraavanlaiseksi:
<p>!teksti</p>
<p>!teksti</p>
<p class="www">!teksti?</p>
<p class="www">!teksti?</p>
Esimerkki
Etsitään funktion avulla kaikki
kappaleet, joissa on
strong-tagi
ja asetetaan niille teksti '!!!':
<p><strong>teksti</strong></p>
<p><strong>teksti</strong></p>
<p>teksti</p>
<p>teksti</p>
$('p').filter(function() {
return $('strong', this).length === 1;
}).html('!!!');
HTML-koodi muuttuu seuraavanlaiseksi:
<p>!!!</p>
<p>!!!</p>
<p>teksti</p>
<p>teksti</p>