Metoden filter
Metoden filter efterlader i sættet kun
de elementer, der opfylder
en bestemt selector.
Syntaks
Filtrering efter selector:
.filter(selector);
Parameteren kan også være DOM-elementer eller et jQuery-objekt:
.filter(DOM-element eller jQuery-objekt);
Man kan også filtrere elementer ved hjælp af
en funktion, som kaldes separat for
hvert af de valgte elementer. Hvis den
returnerer true, vil det aktuelle element blive
inkluderet i det endelige resultat, hvis false
- ikke inkluderet. Selve elementerne er tilgængelige i funktionen,
i variablen this, og deres rækkenummer
i sættet — i variablen index:
.filter(function(index, elem))
Eksempel
Lad os finde alle afsnit, sætte tekst
'!' foran dem ved hjælp af
prepend,
derefter udvælge fra de fundne kun de afsnit
med klassen www ved hjælp af filter
og sætte tekst '?' bagved dem ved hjælp af
append:
<p>tekst</p>
<p>tekst</p>
<p class="www">tekst</p>
<p class="www">tekst</p>
$('p').prepend('!').filter('.www').append('?');
HTML-koden vil se sådan ud:
<p>!tekst</p>
<p>!tekst</p>
<p class="www">!tekst?</p>
<p class="www">!tekst?</p>
Eksempel
Lad os ved hjælp af en funktion finde alle
afsnit, som har tagget
strong
og sætte teksten '!!!' foran dem:
<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('!!!');
HTML-koden vil se sådan ud:
<p>!!!</p>
<p>!!!</p>
<p>tekst</p>
<p>tekst</p>