remove - jquery get attribute data
Como salir de jQuery cada Loop (6)
¿Cómo puedo salir de un jQuery each
bucle?
Yo he tratado:
return false;
En el bucle pero esto no funcionó. ¿Algunas ideas?
ACTUALIZACIÓN Si bien no está claro cuál fue el alcance original de la pregunta, tenga en cuenta que la respuesta elegida solo cubre la función $.each()
pero no la $().each
.
"cada" utiliza la función de devolución de llamada. La función de devolución de llamada se ejecuta independientemente de la función de llamada, por lo que no es posible volver a la función de llamada desde la función de devolución de llamada.
use for loop si tiene que detener la ejecución del loop en base a alguna condición y permanecer en la misma función.
Creé un Fiddle para la respuesta a esta pregunta porque la respuesta aceptada es incorrecta y este es el primer hilo de devuelto por Google con respecto a esta pregunta.
Para salir de un $ .each debes usar return false;
Aquí hay un Fiddle probándolo:
Me encontré con la situación en la que encontré una condición que rompió el ciclo, sin embargo, el código después de la función .each () aún se ejecuta. Luego puse una marca en "verdadero" con una comprobación inmediata de la bandera después de la función .each () para garantizar que no se ejecutó el código que siguió.
$(''.groupName'').each(function() {
if($(this).text() == groupname){
alert(''This group already exists'');
breakOut = true;
return false;
}
});
if(breakOut) {
breakOut = false;
return false;
}
Para break
un bucle de $.each
, debe devolver false
en la devolución de llamada del bucle.
Devolver true
salta a la siguiente iteración, equivalente a continue
en un ciclo normal.
$.each(array, function(key, value) {
if(value === "foo") {
return false;
}
});
Rompa con un $().each
bucle se cubre en ¿Cómo romper / salir de una función each () en JQuery?
Sé que es una pregunta bastante antigua, pero no vi ninguna respuesta, lo que aclara que por qué y cuándo es posible romper con el retorno.
Me gustaría explicarlo con 2 simples ejemplos:
1. Ejemplo: En este caso, tenemos una iteración simple y queremos romper con devolver verdadero, si podemos encontrar los tres.
function canFindThree() {
for(var i = 0; i < 5; i++) {
if(i === 3) {
return true;
}
}
}
Si llamamos a esta función, simplemente devolverá la verdad.
2. Ejemplo En este caso, queremos iterar con cada función de jquery, que toma la función anónima como parámetro.
function canFindThree() {
var result = false;
$.each([1, 2, 3, 4, 5], function(key, value) {
if(value === 3) {
result = true;
return false; //This will only exit the anonymous function and stop the iteration immediatelly.
}
});
return result; //This will exit the function with return true;
}
De acuerdo con la documentación return false;
deberia hacer el trabajo
Podemos romper el bucle $ .each () [..] haciendo que la función de devolución de llamada devuelva false.
Devuelve falso en la devolución de llamada:
function callback(indexInArray, valueOfElement) {
var booleanKeepGoing;
this; // == valueOfElement (casted to Object)
return booleanKeepGoing; // optional, unless false
// and want to stop looping
}
Por cierto, continue
trabajos como este:
Devolver no falso es lo mismo que una instrucción de continuación en un bucle for; saltará inmediatamente a la siguiente iteración.