Metoden filter
Metoden filter behåller i uppsättningen endast
de element som uppfyller
en viss selektor.
Syntax
Filtrering efter selektor:
.filter(selektor);
Parametern kan också vara DOM-element eller ett jQuery-objekt:
.filter(DOM-element eller jQuery-objekt);
Man kan också filtrera element med hjälp av
en funktion, som anropas separat för
varje av de valda elementen. Om den
returnerar true kommer det aktuella elementet att
inkluderas i slutresultatet, om false
- kommer det inte att inkluderas. Själva elementen är tillgängliga i funktionen,
i variabeln this, och deras ordningsnummer
i uppsättningen — i variabeln index:
.filter(function(index, elem))
Exempel
Låt oss hitta alla stycken, sätta texten
'!' i början på dem med hjälp av
prepend,
sedan från de hittade endast få styckena
med klassen www med hjälp av filter
och sätta texten '?' i slutet på dem med hjälp av
append:
<p>text</p>
<p>text</p>
<p class="www">text</p>
<p class="www">text</p>
$('p').prepend('!').filter('.www').append('?');
HTML-koden kommer att se ut så här:
<p>!text</p>
<p>!text</p>
<p class="www">!text?</p>
<p class="www">!text?</p>
Exempel
Låt oss med hjälp av en funktion hitta alla
stycken som har taggen
strong
och sätta texten '!!!' på dem:
<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-koden kommer att se ut så här:
<p>!!!</p>
<p>!!!</p>
<p>text</p>
<p>text</p>