Metoda filter
Metoda filter ponechá v sadě pouze
ty prvky, které vyhovují
určitému selektoru.
Syntaxe
Filtrování podle selektoru:
.filter(selektor);
Parametr může být také DOM elementy nebo objekt jQuery:
.filter(DOM element nebo objekt jQuery);
Prvky lze také filtrovat pomocí
funkce, která je volána samostatně pro
každý z vybraných prvků. Pokud
vrátí true, bude aktuální prvek
zařazen do konečného výsledku, pokud false
- nebude zařazen. Samotné prvky jsou dostupné ve funkci,
v proměnné this, a jejich pořadová čísla
v sadě — v proměnné index:
.filter(function(index, elem))
Příklad
Pojďme najít všechny odstavce, přidat jim na
začátek text '!' pomocí
prepend,
poté získat z nalezených pouze odstavce
s třídou www pomocí filter
a přidat jim na konec text '?' pomocí
append:
<p>text</p>
<p>text</p>
<p class="www">text</p>
<p class="www">text</p>
$('p').prepend('!').filter('.www').append('?');
HTML kód bude poté vypadat takto:
<p>!text</p>
<p>!text</p>
<p class="www">!text?</p>
<p class="www">!text?</p>
Příklad
Pojďme pomocí funkce najít všechny
odstavce, které obsahují tag
strong
a nastavit jim text '!!!':
<p><strong>text</strong></p>
<p><strong>text</strong></p>
<p>text</p>
<p>text</p>
$('p').filter(function() {
return $('strong', this).length === 1;
}).html('!!!');
HTML kód bude poté vypadat takto:
<p>!!!</p>
<p>!!!</p>
<p>text</p>
<p>text</p>