filter-metodi

filter-metodi jättää joukkoon vain ne elementit, jotka täyttävät tietyn valitsimen ehdon.

Syntaksi

Suodatus valitsimen mukaan:

javascript.filter(valitsin);

Parametri voi olla myös DOM-elementtejä tai jQuery-objekti:

javascript.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:

javascript.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:

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

HTML-koodi muuttuu seuraavanlaiseksi:

html<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 '!!!':

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

HTML-koodi muuttuu seuraavanlaiseksi:

html<p>!!!</p>
<p>!!!</p>
<p>teksti</p>
<p>teksti</p>

Katso myös

  • find-metodi,
    joka löytää elementtejä valitsimen mukaan jo löydettyjen joukosta
  • has-metodi,
    joka suodattaa valittujen elementtien joukon jälkeläisten perusteella