⊗jqBsEM 30 of 113 menu

Trabajo con el método each en jQuery

Cuando tenemos un grupo de elementos obtenidos con jQuery, solo podemos realizar cambios en ellos para todos los elementos simultáneamente.

Por ejemplo, si queremos cambiar el texto de todos los párrafos encontrados, no podremos hacerlo diferente para cada uno.

En este caso nos ayudará el método especial each, que permite aplicar una función a todos los elementos de un conjunto jQuery. Dentro de esta función podremos distinguir los elementos y actuar de forma diferente con cada uno de ellos.

En esencia, each es un bucle con el cual se pueden recorrer todos los elementos encontrados. La referencia al elemento por el que pasa el bucle en cada momento estará en this.

Podemos simplemente usar este this en JavaScript puro, como lo hacíamos antes, por ejemplo, así - this.innerHTML - y mostrar el contenido interno de nuestros elementos. Pero es mejor envolver this en el símbolo de jQuery de esta manera - $(this) - en este caso podremos aplicarle todos los métodos y encadenamientos de jQuery.

Veamos el siguiente código HTML:

<p class="www">text</p> <p class="www">text</p> <p class="www">text</p> <p>text</p>

En este ejemplo debemos obtener todos los elementos con la clase www y mostrar en pantalla su contenido. Cómo se hace: con $('.www') obtenemos los elementos que necesitamos, luego con each(test) aplicamos la función test a cada elemento obtenido. Primero se aplicará al primer párrafo, luego al segundo, al tercero y así sucesivamente.

Dentro de la función, this hará referencia al elemento al que se aplica la función test - primero será el primer elemento, luego el segundo, y así sucesivamente. Con una constructura como $(this), en lugar del this normal de JavaScript obtendremos un elemento jQuery y le aplicaremos el método html, que obtendrá el texto de nuestro elemento. Luego, simplemente se mostrará en pantalla:

/* Escribimos el nombre de la función test sin comillas y (), porque necesitamos su código, no el resultado: */ $('.www').each(test); function test() { alert($(this).html()); }

Para resolver esta tarea también se pueden usar funciones anónimas - es lo más común:

$('.www').each(function() { alert($(this).html()); });

También podemos pasarle al método each una función callback con parámetros.

En el siguiente ejemplo, agreguemos al final de todos los li en la página su número de orden. Ahora a nuestra función anónima le pasaremos el índice del elemento y el elemento mismo:

$('li').each(function (index, elem) { $(elem).append(index); });

Y ahora usemos this en lugar de elem:

$('li').each(function (index) { $(this).append(index); });

Cambie el contenido de todos los li por su número de orden.

Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar