jQuery 각 루프에서 벗어나는 방법
jQuery each
루프에서 벗어나려면 어떻게해야 합니까?
나는 시도했다 :
return false;
루프에서 그러나 이것은 작동하지 않았습니다. 어떤 아이디어?
에 또는 루프, 당신은 반환해야 루프 콜백.break
$.each
$(selector).each
false
반환 true
은 다음 반복 으로 건너 뜁니다 continue
. 일반 루프의 a 와 같습니다 .
$.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
는 다음과 같이 작동합니다.
false가 아닌 반환은 for 루프의 continue 문과 동일합니다. 다음 반복으로 즉시 건너 뜁니다.
수락 된 답변이 잘못되었고이 질문과 관련하여 Google에서 반환 된 첫 번째 StackOverflow 스레드이기 때문에이 질문에 대한 답변을 위해 Fiddle을 만들었습니다.
$ .each에서 벗어나려면 다음을 사용해야합니다. return false;
이를 증명하는 Fiddle이 있습니다.
루프를 깨는 조건을 만났지만 .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;
}
"각각"은 콜백 기능을 사용합니다. Callback 함수는 호출 함수와 관계없이 실행되므로 콜백 함수에서 호출 함수로 복귀 할 수 없습니다.
일부 조건에 따라 루프 실행을 중지하고 동일한 기능을 유지해야하는 경우 for 루프를 사용하십시오.
I know its quite an old question but I didn't see any answer, which clarify that why and when its possible to break with return.
I would like to explain it with 2 simple examples:
1. Example: In this case, we have a simple iteration and we want to break with return true, if we can find the three.
function canFindThree() {
for(var i = 0; i < 5; i++) {
if(i === 3) {
return true;
}
}
}
if we call this function, it will simply return the true.
2. Example In this case, we want to iterate with jquery's each function, which takes anonymous function as parameter.
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;
}
참고URL : https://stackoverflow.com/questions/1784780/how-to-break-out-of-jquery-each-loop
'Program Tip' 카테고리의 다른 글
Linux의 특정 포트에서 실행되는 프로세스를 종료하는 방법은 무엇입니까? (0) | 2020.10.02 |
---|---|
현재 변경 사항을 git [duplicate]의 다른 지점에 커밋하는 방법 (0) | 2020.10.02 |
INotifyPropertyChanged 구현-더 나은 방법이 있습니까? (0) | 2020.10.02 |
Java에서 폴더의 모든 파일을 읽는 방법은 무엇입니까? (0) | 2020.10.02 |
iOS7에서 UITableViewStyleGrouped 스타일로 UITableView 상단에 추가 패딩이있는 이유는 무엇입니까? (0) | 2020.10.02 |