项目开发中,遇到一种情况,想在jQuery.each循环中判断一个条件,如果条件满足则直接退出循环返回一个值,如下
结果发现,程序总是返回 otherValue,这也就是说程序总是走完each循环,而没有当条件满足的时候在第3行直接返回。
查看了一些资料才发现,原来在jQuery.each中使用 return false 相当于在for或while循环中使用break,return true则相当于使用continue,这不禁想起了js的事件冒泡。
其实可以这样来理解,jQuery.each相当于其中function的父事件,在function中return false则阻止jQuery.each运行,也就相当于使用break,这也就很容易理解为什么return true就相当于使用continue了。
如此一来,上述程序可以写成如下形式
搞懂一些jQuery的运行机制后,一些问题便可以轻松解决了。
阅读(6) | 评论(0) | 转发(0) |
<script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/buttonLite.js#style=-1&uuid=&pophcol=3&lang=zh"></script> <script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/bshareC0.js"></script>
- $.each(array, function(index, a) {
- if (met condition) {
- return someValue;
- }
- });
- return otherValue;
查看了一些资料才发现,原来在jQuery.each中使用 return false 相当于在for或while循环中使用break,return true则相当于使用continue,这不禁想起了js的事件冒泡。
其实可以这样来理解,jQuery.each相当于其中function的父事件,在function中return false则阻止jQuery.each运行,也就相当于使用break,这也就很容易理解为什么return true就相当于使用continue了。
如此一来,上述程序可以写成如下形式
- var ret = otherValue;
- $.each(array, function(index, a) {
- if (met condition) {
- ret = someValue;
- return false; // break;
- }
- });
- return ret;
相关热门文章
给主人留下些什么吧!~~
评论热议