Método filter
El método filter deja en el conjunto solo
aquellos elementos que satisfacen
un selector específico.
Sintaxis
Filtrado por selector:
.filter(selector);
El parámetro también puede ser elementos DOM o un objeto jQuery:
.filter(elemento DOM u objeto jQuery);
También se pueden filtrar elementos usando
una función, que se llama por separado para
cada uno de los elementos seleccionados. Si
devuelve true, entonces el elemento actual será
incluido en el resultado final, si false
- no se incluirá. Los propios elementos están disponibles en la función,
en la variable this, y sus números de orden
en el conjunto — en la variable index:
.filter(function(index, elem))
Ejemplo
Encontremos todos los párrafos, pongámosles al
principio el texto '!' usando
prepend,
luego obtengamos de los encontrados solo los párrafos
con la clase www usando filter
y pongámosles al final el texto '?' usando
append:
<p>text</p>
<p>text</p>
<p class="www">text</p>
<p class="www">text</p>
$('p').prepend('!').filter('.www').append('?');
El código HTML quedará así:
<p>!text</p>
<p>!text</p>
<p class="www">!text?</p>
<p class="www">!text?</p>
Ejemplo
Usemos una función para encontrar todos
los párrafos que tengan la etiqueta
strong
y pongámosles el texto '!!!':
<p><strong>text</strong></p>
<p><strong>text</strong></p>
<p>text</p>
<p>text</p>
$('p').filter(function() {
return $('strong', this).length === 1;
}).html('!!!');
El código HTML quedará así:
<p>!!!</p>
<p>!!!</p>
<p>text</p>
<p>text</p>