Metoda filter

Metoda filter păstrează în set doar acele elemente care satisfac un anumit selector.

Sintaxă

Filtrare după selector:

javascript.filter(selector);

Parametrul poate fi de asemenea elemente DOM sau un obiect jQuery:

javascript.filter(element DOM sau obiect jQuery);

Se pot filtra elemente și cu ajutorul unei funcții, care este apelată separat pentru fiecare dintre elementele selectate. Dacă ea returnează true, atunci elementul curent va fi inclus în rezultatul final, dacă false - nu va fi inclus. Elementele în sine sunt disponibile în funcție, în variabila this, iar numerele lor de ordine în set — în variabila index:

javascript.filter(function(index, elem))

Exemplu

Să găsim toate paragrafele, să le punem la început textul '!' cu ajutorul prepend, apoi să obținem dintre cele găsite doar paragrafele cu clasa www cu ajutorul filter și să le punem la sfârșit textul '?' cu ajutorul append:

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

Codul HTML va arăta astfel:

html<p>!text</p>
<p>!text</p>
<p class="www">!text?</p>
<p class="www">!text?</p>

Exemplu

Să găsim cu ajutorul unei funcții toate paragrafele care au tag-ul strong și să le punem textul '!!!':

html<p><strong>text</strong></p>
<p><strong>text</strong></p>
<p>text</p>
<p>text</p>
javascript$('p').filter(function() {
  return $('strong', this).length === 1;
}).html('!!!');

Codul HTML va arăta astfel:

html<p>!!!</p>
<p>!!!</p>
<p>text</p>
<p>text</p>

Vedeți și

  • metoda find,
    care găsește elemente după selector printre cele deja găsite
  • metoda has,
    care filtrează setul de elemente selectate după descendenți