w3schools objects for ejemplos array jquery each

objects - jquery each break



Cuál es la diferencia entre $.each(selector) y $(selector).each() (8)

¿Cuál es la diferencia entre esto?

$.each($(''#myTable input[name="deleteItem[]"]:checked'').do_something());

y esto:

$(''#myTable input[name="deleteItem[]"]:checked'').each(function() { do_something });

El html para la celda de la tabla que se selecciona y se actúa de la siguiente manera se ve así:

<td width="20px"><input type="checkbox" class="chkDeleteItem" name="deleteItem[]" value="'' . $rowItem[''itemID''] . ''" /></td>

Revisé la documentación de jQuery, pero aún no entiendo la diferencia. (¿Soy yo o es esa documentación a veces un poco "nebulosa" en claridad de contenido?)

Información agregada:

¡Al parecer mi intento de ejemplos genéricos es confundir a la gente! Junto con el paréntesis (previamente) perdido en el primer ejemplo. :(

El primer ejemplo proviene de una línea en mi código que elimina <tbody> para cualquier fila con una casilla de verificación marcada:

$.each($(''#classesTable input[name="deleteClasses[]"]:checked'').parent().parent().parent().remove());

El segundo ejemplo proviene de una situación en la que miro a través de la tabla #classes para ver si hay casillas marcadas y elimino su elemento coincidente en un menú desplegable.

$(''#classesTable input[name="deleteClasses[]"]:checked'').each(function(){ $(''#classesList option[value="'' + $(this).attr(''value'') + ''"]'').remove(); });

Entiendo que hacen dos cosas diferentes, pero no hasta el punto de que pueda decir "Necesito usar $ .each () en este caso y .each (function () {}) en otro caso.

¿Son intercambiables en absoluto? Solo en algunos casos? ¿Nunca?


Desea realmente usar $.each con una matriz que no sea elementos o algo. es decir:

var x = ["test", "test2"];

Utilizaría $.each(x... para recorrer eso en lugar de x.each :)

.each es solo para elementos :)


El primero ejecutará la función de devolución de llamada a los elementos de la colección que haya pasado, pero su código no es sintácticamente correcto en este momento.

Debería ser:

$.each($(''#myTable input[name="deleteItem[]"]:checked''), do_something);

Ver: http://api.jquery.com/jQuery.each/

El segundo ejecutará la función en cada elemento de la colección en la que lo esté ejecutando.

Ver: http://api.jquery.com/each/



No hay diferencia funcional Cada objeto jQuery posee un método .each() heredado de jQuery.fn . Al invocar este object method , jQuery ya sabe para qué Array (-like object) iterar. En otras palabras, recorre las indexed propertys del objeto jQuery actual.

$.each() por otro lado es solo una "herramienta de ayuda" que gira sobre cualquier tipo de Array u Object , pero por supuesto tiene que decirle a ese método qué objetivo desea iterar.
También se ocupará de ti, ya sea que pases una Matriz u objeto, hace lo correcto al usar un for loop for-in o for loop under the hood.


Por lo que entiendo $.each(); recorre un objeto o matriz y le proporciona el iterador y el valor de cada elemento.

$().each(); recorre una lista de objetos jQuery y le proporciona el iterador y el objeto jQuery.


Tomado de http://api.jquery.com/jQuery.each/

La función $.each() no es lo mismo que .each() , que se usa para iterar, exclusivamente, sobre un objeto jQuery. La función $.each() se puede usar para iterar sobre cualquier colección, ya sea un mapa (objeto JavaScript) o una matriz. En el caso de una matriz, a la devolución de llamada se le pasa un índice de matriz y un valor de matriz correspondiente cada vez. (También se puede acceder al valor a través de la palabra clave this, pero Javascript siempre ajustará este valor como un Objeto, incluso si es una cadena simple o valor numérico.) El método devuelve su primer argumento, el objeto que se iteró.


de http://api.jquery.com/jQuery.each :

La función $ .each () no es lo mismo que .each (), que se usa para iterar, exclusivamente, sobre un objeto jQuery. La función $ .each () se puede usar para iterar sobre cualquier colección, ya sea un mapa (objeto JavaScript) o una matriz.


Descripción:

.each es un iterador que se utiliza para iterar solo sobre la colección de objetos jQuery, mientras que jQuery.each ( $.each ) es una función general para iterar sobre objetos y matrices JavaScript.

Ejemplos:

Array de Javascript (u objeto js) usando $ .each ():

var myArray = [10,20,30]; jQuery.each( myArray, function(index, value) { console.log(''element at index '' + index + '' is '' + value); }); //Output element at index 0 is 10 element at index 1 is 20 element at index 2 is 30

Objetos jQuery con .each ()

$(''#dv'').children().each(function(index, element) { console.log(''element at index '' + index + ''is '' + (this.tagName)); console.log(''current element as dom object:'' + element); console.log(''current element as jQuery object:'' + $(this)); }); //Output element at index 0 is input element at index 1 is p element at index 2 is span

Si busca más ejemplos + detalles, $ .each vs .each ()

Recursos