Metoden filter

Metoden filter efterlader i sættet kun de elementer, der opfylder en bestemt selector.

Syntaks

Filtrering efter selector:

javascript.filter(selector);

Parameteren kan også være DOM-elementer eller et jQuery-objekt:

javascript.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:

javascript.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:

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

HTML-koden vil se sådan ud:

html<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:

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('!!!');

HTML-koden vil se sådan ud:

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

Se også

  • metoden find,
    som finder elementer efter selector blandt de allerede fundne
  • metoden has,
    som filtrerer sættet af valgte elementer efter efterkommere