如何从嵌套的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; }); }); }