Método filter

O método filter mantém no conjunto apenas os elementos que satisfazem um seletor específico.

Sintaxe

Filtragem por seletor:

javascript.filter(seletor);

O parâmetro também pode ser elementos DOM ou um objeto jQuery:

javascript.filter(elemento DOM ou objeto jQuery);

Também é possível filtrar elementos usando uma função, que é chamada separadamente para cada um dos elementos selecionados. Se ela retornar true, o elemento atual será incluído no resultado final, se false - não será incluído. Os próprios elementos estão disponíveis na função, na variável this, e seus números de ordem no conjunto — na variável index:

javascript.filter(function(index, elem))

Exemplo

Vamos encontrar todos os parágrafos, colocar no início deles o texto '!' usando prepend, depois obter, dentre os encontrados, apenas os parágrafos com a classe www usando filter e colocar no final deles o texto '?' usando append:

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

O código HTML ficará assim:

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

Exemplo

Vamos usar uma função para encontrar todos os parágrafos que possuem a tag strong e colocar neles o texto '!!!':

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

O código HTML ficará assim:

html<p>!!!</p>
<p>!!!</p>
<p>texto</p>
<p>texto</p>

Veja também

  • método find,
    que encontra elementos por seletor entre os já encontrados
  • método has,
    que filtra o conjunto de elementos selecionados por descendentes