jQuery each
루프에서 벗어나려면 어떻게해야 합니까?
나는 시도했다 :
return false;
루프에서 그러나 이것은 작동하지 않았습니다. 어떤 아이디어?
답변
에 또는 루프, 당신은 반환해야 루프 콜백.break
$.each
$(selector).each
false
리턴 true
하면 다음 반복 으로 건너 뜁니다 ( continue
일반 루프의 경우 와 동일) .
$.each(array, function(key, value) {
if(value === "foo") {
return false; // breaks
}
});
// or
$(selector).each(function() {
if (condition) {
return false;
}
});
답변
문서에 따르면 return false;
작업을 수행해야합니다.
콜백 함수가 false를 반환하도록하여 $ .each () 루프 [..]를 중단 할 수 있습니다.
콜백에서 false를 반환하십시오.
function callback(indexInArray, valueOfElement) {
var booleanKeepGoing;
this; // == valueOfElement (casted to Object)
return booleanKeepGoing; // optional, unless false
// and want to stop looping
}
BTW continue
는 다음과 같이 작동합니다.
거짓이 아닌 리턴은 for 루프의 continue 문과 동일합니다. 다음 반복으로 즉시 건너 뜁니다.
답변
허용 된 답변이 정확하지 않기 때문에이 질문에 대한 답변을 위해 바이올린을 만들었습니다.이 질문에 대해 Google에서 반환 된 첫 번째 StackOverflow 스레드입니다.
$ .each에서 벗어나려면 사용해야합니다. return false;
그것을 증명하는 바이올린은 다음과 같습니다.
답변
루프를 깨는 조건을 만났지만 .each () 함수 이후의 코드는 여전히 실행되는 상황을 만났습니다. 그런 다음 .each () 함수 다음에 플래그를 즉시 확인하여 플래그를 “true”로 설정하여 뒤 따르는 코드가 실행되지 않았는지 확인합니다.
$('.groupName').each(function() {
if($(this).text() == groupname){
alert('This group already exists');
breakOut = true;
return false;
}
});
if(breakOut) {
breakOut = false;
return false;
}
답변
“각”은 콜백 기능을 사용합니다. 콜백 기능은 호출 기능에 관계없이 실행되므로 콜백 기능에서 호출 기능으로 돌아갈 수 없습니다.
특정 조건에 따라 루프 실행을 중지하고 동일한 기능을 유지해야하는 경우 for 루프를 사용하십시오.
답변
나는 그것의 오래된 질문을 알고 있지만 대답을 보지 못했습니다.
간단한 두 가지 예를 들어 설명하고 싶습니다.
1. 예제 :
이 경우 간단한 반복이 있고 세 개를 찾을 수 있으면 return true로 나누고 싶습니다.
function canFindThree() {
for(var i = 0; i < 5; i++) {
if(i === 3) {
return true;
}
}
}
이 함수를 호출하면 단순히 true를 반환합니다.
2. 예제이
경우 익명 함수를 매개 변수 로 사용하는 jquery의 각 함수 를 사용하여 반복하려고합니다 .
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;
}