Metoda filter

Metoda filter pozostawia w zestawie tylko te elementy, które spełniają określony selektor.

Składnia

Filtrowanie według selektora:

javascript.filter(selektor);

Parametr może być również elementami DOM lub obiektem jQuery:

javascript.filter(Element DOM lub obiekt jQuery);

Można również filtrować elementy za pomocą funkcji, która jest wywoływana oddzielnie dla każdego z wybranych elementów. Jeśli zwróci true, to bieżący element zostanie uwzględniony w końcowym wyniku, jeśli false - nie zostanie uwzględniony. Same elementy są dostępne w funkcji, w zmiennej this, a ich numery porządkowe w zestawie — w zmiennej index:

javascript.filter(function(index, elem))

Przykład

Znajdźmy wszystkie akapity, dodajmy im na początku tekst '!' za pomocą prepend, następnie uzyskajmy ze znalezionych tylko akapity z klasą www za pomocą filter i dodajmy im na końcu tekst '?' za pomocą append:

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

Kod HTML będzie wyglądać tak:

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

Przykład

Znajdźmy za pomocą funkcji wszystkie akapity, które mają tag strong i ustawmy im tekst '!!!':

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

Kod HTML będzie wyglądać tak:

html<p>!!!</p>
<p>!!!</p>
<p>tekst</p>
<p>tekst</p>

Zobacz też

  • metoda find,
    która znajduje elementy według selektora spośród już znalezionych
  • metoda has,
    która filtruje zestaw wybranych elementów według elementów potomnych