function a() {
$("input").each(function() {
if (this.value =="") {
alert('1');return false;
}
}
alert('2');
});
当input为""时,总是有alert('2')出来.
我觉得奇怪,不是已经return false;了么?原来,each里面是有function()的,这里这个return false;只是终止each里面的function()而不是each外面的function();
解决方法,就是设定一个标识,
if(!flag) return false;
让它执行.
var flag=true;
function a() {
$("input").each(function() {
if (this.value =="") {
alert('1');
flag=false;
return false;
}
}
if(!flag) return false;
alert('2');
});
在回调函数里return false即可,大多数jQuery都是如此的
===================================
返回 'false' 将停止循环 (就像在普通的循环中使用 'break')。
返回 'true' 跳至下一个循环(就像在普通的循环中使用'continue')。
返回 'true' 跳至下一个循环(就像在普通的循环中使用'continue')。
本文探讨了jQuery中each方法的正确使用方式,特别是如何通过设置标志变量来有效地控制循环的进行,避免因直接在each内部使用return false导致的循环无法正常终止的问题。
132

被折叠的 条评论
为什么被折叠?



