Metoda filter
Metoda filter pozostawia w zestawie tylko
te elementy, które spełniają
określony selektor.
Składnia
Filtrowanie według selektora:
.filter(selektor);
Parametr może być również elementami DOM lub obiektem jQuery:
.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:
.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:
<p>tekst</p>
<p>tekst</p>
<p class="www">tekst</p>
<p class="www">tekst</p>
$('p').prepend('!').filter('.www').append('?');
Kod HTML będzie wyglądać tak:
<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 '!!!':
<p><strong>tekst</strong></p>
<p><strong>tekst</strong></p>
<p>tekst</p>
<p>tekst</p>
$('p').filter(function() {
return $('strong', this).length === 1;
}).html('!!!');
Kod HTML będzie wyglądać tak:
<p>!!!</p>
<p>!!!</p>
<p>tekst</p>
<p>tekst</p>