jQuery每个-停止循环并返回对象 [英] Jquery each - Stop loop and return object
问题描述
有人可以告诉我为什么5
项输入后循环没有停止吗?
Can anybody tell me why the loop did not stop after the 5
entry?
http://jsbin.com/ucuqot/edit#preview
$(document).ready(function()
{
someArray = new Array();
someArray[0] = 't5';
someArray[1] = 'z12';
someArray[2] = 'b88';
someArray[3] = 's55';
someArray[4] = 'e51';
someArray[5] = 'o322';
someArray[6] = 'i22';
someArray[7] = 'k954';
var test = findXX('o322');
});
function findXX(word)
{
$.each(someArray, function(i)
{
$('body').append('-> '+i+'<br />');
if(someArray[i] == 'someArray')
{
return someArray[i]; //<--- did not stop the loop!
}
});
}
推荐答案
因为在each
循环内使用return
语句时,"non-false"值将用作continue
,而false
将充当break
.您需要从each
函数返回false
.像这样:
Because when you use a return
statement inside an each
loop, a "non-false" value will act as a continue
, whereas false
will act as a break
. You will need to return false
from the each
function. Something like this:
function findXX(word) {
var toReturn;
$.each(someArray, function(i) {
$('body').append('-> '+i+'<br />');
if(someArray[i] == word) {
toReturn = someArray[i];
return false;
}
});
return toReturn;
}
从文档:
我们可以在特定的迭代中通过使$ .each()循环中断 回调函数返回false.返回非假与 在for循环中继续执行语句;它将立即跳到下一个 迭代.
We can break the $.each() loop at a particular iteration by making the callback function return false. Returning non-false is the same as a continue statement in a for loop; it will skip immediately to the next iteration.
这篇关于jQuery每个-停止循环并返回对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!