4

我正在尝试验证包含两个 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}
        })
    })
}
4

4 回答 4

5

我认为这就是您要寻找的,这将在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;
}

演示小提琴你可以打开你的控制台,看看当满足真条件时循环停止

于 2013-08-09T07:16:23.673 回答
1
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;
}
于 2013-08-09T06:30:42.113 回答
1

jQuery 文档给出了一个类似的例子。文档状态“您可以通过返回 false 从回调函数中停止循环。”

所以听起来你需要颠倒你的术语并在你希望循环停止时返回 false 。

假设我们有一堆div元素li嵌套在里面。如果我们想在内部循环到达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

于 2013-08-09T07:37:30.907 回答
-1
    function validate(key) {
    var result;
    $jquery.each(function() {
        $jquery.each(function() {
            if () {
                result = true;

            } else{
                result = false;

            }
            return result;
        });
    });

}
于 2013-08-09T06:46:07.257 回答