jQuery each
ループから抜け出すにはどうすればよいですか?
私が試してみました:
return false;
ループではこれは機能しませんでした。何か案は?
return false
間違った場所に。私がそれを修正したとき、すべてがうまくいきました。
return false
動作しない理由がわかりません$().each
- 動作するため。
jQuery each
ループから抜け出すにはどうすればよいですか?
私が試してみました:
return false;
ループではこれは機能しませんでした。何か案は?
return false
間違った場所に。私がそれを修正したとき、すべてがうまくいきました。
return false
動作しない理由がわかりません$().each
- 動作するため。
回答:
またはループ、あなたは返す必要がループコールバックで。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;
}
});
false
ループコールバックでの戻り」とはどういう意味ですか?これは正確にはどこですか?
$.each(array, function(key, value) { if(value == "foo") return false; });
$().each
まったく同じ方法で行われ、編集は混乱を招くだけです。
ドキュメントによると、return false;
仕事をする必要があります。
$ .each()ループ[..]を中断するには、コールバック関数をfalseに戻します。
コールバックでfalseを返します。
function callback(indexInArray, valueOfElement) {
var booleanKeepGoing;
this; // == valueOfElement (casted to Object)
return booleanKeepGoing; // optional, unless false
// and want to stop looping
}
ところで、continue
このように動作します:
false以外を返すことは、forループのcontinueステートメントと同じです。すぐに次の反復にスキップします。
受け入れられた回答が正しくないため、この質問に対する回答のフィドルを作成しました。これは、この質問に関してGoogleから返された最初のStackOverflowスレッドです。
$ .eachから抜け出すには、使用する必要があります return false;
ここにそれを証明するフィドルがあります:
ループを壊す条件に出会ったが、.each()関数の後のコードはまだ実行されているという状況に遭遇しました。次に、フラグを "true"に設定し、.each()関数の直後にフラグをチェックして、後続のコードが実行されなかったことを確認します。
$('.groupName').each(function() {
if($(this).text() == groupname){
alert('This group already exists');
breakOut = true;
return false;
}
});
if(breakOut) {
breakOut = false;
return false;
}
「各」はコールバック関数を使用します。コールバック関数は、呼び出し関数に関係なく実行されるため、コールバック関数から呼び出し関数に戻ることはできません。
ある条件に基づいてループの実行を停止し、同じ関数にとどまる必要がある場合は、forループを使用します。
私はかなり古い質問を知っていますが、何も答えが見つからなかったので、なぜ、いつリターンで中断できるのかがわかります。
私はそれを2つの簡単な例で説明したいと思います:
1.例: この場合、単純な反復があり、3つが見つかればreturn trueで中断したいとします。
function canFindThree() {
for(var i = 0; i < 5; i++) {
if(i === 3) {
return true;
}
}
}
この関数を呼び出すと、単にtrueが返されます。
2.例 この例では、匿名関数をパラメーターとして取るjqueryのeach functionを反復処理します。
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;
}