2013-02-16 55 views
0

我如何从jquery打破每个出return FALSE从每个jquery打破

考虑以下

function check_quantity(){ 

    var _q = $(".quantity"); 

     _q.each(function(){ 

      if(some_condition){ 

      break; // I WANT TO BREAK HERE AND NEED TO RETURN A TRUE INSTEAD OF FALSE 
        // for some reasons there is no way to continue 
      } 

     }); 

    return FALSE; // if condition failed 

} 

有什么解决办法?

+0

你不能只是如果(some_condition){return true;}? – 2013-02-16 05:26:48

+1

[文档](http://api.jquery.com/each/)明确指出,返回“false”以外的内容等同于“continue”,“return false”等同于“break”。 – 2013-02-16 05:26:51

+0

也许如果你用['while循环](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Statements/while)代替它会更好? – Mottie 2013-02-16 05:37:16

回答

2

不改变你的函数,只要你在你的循环中设置一个标志为true,如果你得到你想要的东西。

function check_quantity(){ 

    var ret = false; 
    var _q = $(".quantity"); 

     _q.each(function(){ 

      if(some_condition){ 

      ret = true; // I WANT TO BREAK HERE AND NEED TO RETURN A TRUE INSTEAD OF FALSE 
        // for some reasons there is no way to continue 
      } 

     }); 

    return ret; // if condition failed 

} 
+0

的函数,是的,我知道了,我还在'ret = true'后面加了'return FALSE'。 – Red 2013-02-16 05:35:23

0

你可以继续继续。所以,干脆不要做任何事情:

q.each(function() { 
    if(condition) { 
     //don't do anything 
    } 
    else { 
     //do stuff 
    } 
} 

我不知道你为什么会不只是return false为了打破,虽然。

+0

需求改变,这个函数几乎用于我的项目中的所有页面,期望的返回值是'TRUE'而不是'FALSE'。 – Red 2013-02-16 05:29:48

+0

你只需要在你传给q.each的函数中返回false,而不是你调用q.each – 2013-02-16 05:30:21