Método filter
O método filter mantém no conjunto apenas
os elementos que satisfazem
um seletor específico.
Sintaxe
Filtragem por seletor:
.filter(seletor);
O parâmetro também pode ser elementos DOM ou um objeto jQuery:
.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:
.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:
<p>texto</p>
<p>texto</p>
<p class="www">texto</p>
<p class="www">texto</p>
$('p').prepend('!').filter('.www').append('?');
O código HTML ficará assim:
<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 '!!!':
<p><strong>texto</strong></p>
<p><strong>texto</strong></p>
<p>texto</p>
<p>texto</p>
$('p').filter(function() {
return $('strong', this).length === 1;
}).html('!!!');
O código HTML ficará assim:
<p>!!!</p>
<p>!!!</p>
<p>texto</p>
<p>texto</p>