如何从嵌套的jquery回调函数返回true / false
我试图validation包含两个jQuery回调循环的javascript函数内的元素。 基于条件我想从内部jQuery循环返回true
/ false
,并且应该将其发送回javascript的调用方法。 如果内循环的结果为true
则循环应该停止运行。
if(validate(key)){ } else{ } function validate(key) { $jquery.each(function(){ $jquery.each(function(){ if(){ return true; } else{ return false} }) }) }
我认为这是你正在寻找的东西,这将在满足true
条件时停止两个循环
function validate(key) { var result = false; $jquery.each(function(){ $jquery.each(function(){ if(){ result = true; return false;//break inner loop } }); if(result) return false; //break outer loop if we got true in inner }); return result; }
演示小提琴您可以打开控制台,看到在满足真实条件时循环停止
jQuery文档给出了一个类似的例子。 文档声明’你可以通过返回false来停止回调函数中的循环。’
所以听起来你需要扭转你的术语,并在你希望循环停止时返回false。
假设我们有一堆div
元素嵌套在里面。 如果我们想要在内部循环到达具有特定内容的li
时停止,我们可以这样做:
$( "div").each(function ( index, domEle) { $( "li", domEle ).each(function ( index, domEle2) { var areWeDone; $( domEle2 ).css( "backgroundColor", "yellow" ); if ( $( domEle2 ).is(":contains('Here')") ) { result = true; return false; } else { result = false; return true; } }); if (result == true) { return false; } });
这是完整的jsFiddle 。
function validate(key) { var result; $jquery.each(function() { $jquery.each(function() { if () { result = true; } else{ result = false } return false; }); if (typeof result !== 'undefined') { return false; } }); return result; }
function validate(key) { var result; $jquery.each(function() { $jquery.each(function() { if () { result = true; } else{ result = false; } return result; }); }); }