jQueryeach
ループから抜け出すにはどうすればよいですか?
私が試してみました:
return false;
ループ内ですが、これは機能しませんでした。何か案は?
2020 年 9 月 5 日更新
置くreturn false;
場所を間違えました。ループの中に入れると、すべてが機能しました。
orループにbreak
は、ループ コールバックで戻る必要があります。$.each
$(selector).each
false
スキップを次の反復に戻すことは、通常のループのtrue
a と同等です。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
}
ところで、continue
次のように機能します。
false 以外を返すことは、for ループの continue ステートメントと同じです。次の繰り返しにすぐにスキップします。
ループを中断する条件を満たした状況に遭遇しましたが、.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;
}
「each」はコールバック関数を使用します。コールバック関数は呼び出し元の関数に関係なく実行されるため、コールバック関数から呼び出し元の関数に戻ることはできません。
何らかの条件に基づいてループの実行を停止し、同じ関数にとどまる必要がある場合は、for ループを使用します。