w3schools recorrer for elementos ejemplos div bucle javascript jquery iteration

javascript - recorrer - ¿Cómo pasar a la siguiente iteración en jQuery.each() util?



jquery for (6)

Estoy tratando de recorrer una serie de elementos. La documentación de jQuery dice:

documentación de jquery.Each ()

Devolver no falso es lo mismo que una instrucción de continuación en un bucle for, saltará inmediatamente a la siguiente iteración.

He intentado llamar ''retorno no falso''; y ''no-falso'' (sin retorno) ninguno de los cuales salta a la siguiente iteración. En su lugar, rompen el bucle. ¿Qué me estoy perdiendo?


El bucle solo se rompe si devuelves literalmente false . Ex:

// this is how jquery calls your function // notice hard comparison (===) against false if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { break; }

Esto significa que puede devolver cualquier otra cosa, incluso undefined , que es lo que devuelve si no devuelve nada, así que simplemente puede usar una declaración de devolución vacía:

$.each(collection, function (index, item) { if (!someTestCondition) return; // go to next iteration // otherwise do something });

Es posible que esto pueda variar según la versión; esto es aplicable para jQuery 1.12.4. Pero realmente, cuando sale de la parte inferior de la función, tampoco está devolviendo nada, y es por eso que el bucle continúa, así que espero que no haya ninguna posibilidad de que no devolver nada no pueda continuar el bucle. A menos que quieran obligar a todos a comenzar a devolver algo para mantener el bucle, devolver nada tiene que ser una forma de hacerlo funcionar.


Javascript tiene la idea de "veracidad" y "falsedad". Si una variable tiene un valor, entonces, en general, como verás, tiene "verdad", nula, o ningún valor tiende a "falsedad". Los siguientes fragmentos podrían ayudar:

var temp1; if ( temp1 )... // false var temp2 = true; if ( temp2 )... // true var temp3 = ""; if ( temp3 ).... // false var temp4 = "hello world"; if ( temp4 )... // true

Esperemos que eso ayude?

Además, vale la pena ver estos videos de Douglas Crockford.

actualización: gracias a @cphpython por detectar los enlaces rotos: he actualizado para apuntar a versiones de trabajo ahora

El lenguaje Javascript

Javascript - Las partes buenas


Lo que quieren decir con no falso es:

return true;

Así que este código:

var arr = [ "one", "two", "three", "four", "five" ]; $.each(arr, function(i) { if(arr[i] == ''three'') { return true; } alert(arr[i]); });

Alertará a uno, dos, cuatro, cinco


No olvide que a veces puede simplemente caer del final del bloque para pasar a la siguiente iteración:

$(".row").each( function() { if ( ! leaveTheLoop ) { ... do stuff here ... } });

En lugar de volver realmente así:

$(".row").each( function() { if ( leaveTheLoop ) return; //go to next iteration in .each() ... do stuff here ... });


Por ''retornar no falso'', significan devolver cualquier valor que no funcionaría como falso booleano. Así que podrías devolver true , 1 , ''non-false'' , o cualquier otra cosa que puedas imaginar.


jQuery.noop() puede ayudar

$(".row").each( function() { if (skipIteration) { $.noop() } else{doSomething} });