博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jquery 的 each 方法中 return 的坑
阅读量:5037 次
发布时间:2019-06-12

本文共 2511 字,大约阅读时间需要 8 分钟。

jquery 的 each 方法中 return 的坑

Chapter 0

在项目中使用 jquery 的 each 方法时想在 each 的循环中返回一个布尔类型的值于是掉进一个坑中...

Chapter 1

最初的代码:

这里的代码,虽然return 了,但是并未实际 return 值作为方法的返回值,而且还是继续往后执行。 在网上查询之后发现在 jquery 的 each 方法中如果 return true 相当于是 continue,而 return false 相当于是 break。
1 $(":checkbox[name='insurace-category']:checked").each(function (index, ele) { 2         var _item = $(".gift_option_item_" + $(ele).val()); 3         if (_item && _item.length > 0) { 4             var _premium = $.trim($(_item).find(".custom_inputbox").eq(0).val()); 5             var _selectElement = $(_item).find("select"); 6             if (_selectElement && _selectElement.length > 0) { 7                 var _amount = $.trim($(_selectElement).val()); 8                 if (!_amount) { 9                     layer.msg("请选择保额!", function () {10                         $(_selectElement).focus();11                     });12                     return false;13                 }14             }15             if (!_premium) {16                 layer.msg("请输入保费!", function() {17                     $(_item).find(".custom_inputbox").eq(0).focus();18                 });19                 return false;20             }21         }22     });
 

Chapter 2

我的解决方案如下:

修改后的代码:

1    var _isInvalid = false; 2     $(":checkbox[name='insurace-category']:checked").each(function (index, ele) { 3         var _item = $(".gift_option_item_" + $(ele).val()); 4         if (_item && _item.length > 0) { 5             var _premium = $.trim($(_item).find(".custom_inputbox").eq(0).val()); 6             var _selectElement = $(_item).find("select"); 7             if (_selectElement && _selectElement.length > 0) { 8                 var _amount = $.trim($(_selectElement).val()); 9                 if (!_amount) {10                     layer.msg("请选择保额!");11                     $(_selectElement).focus();12                     _isInvalid = true;13                     return false;14                 }15             }16             if (!_premium) {17                 layer.msg("请输入保费!");18                 $(_item).find(".custom_inputbox").eq(0).focus();19                 _isInvalid = true;20                 return false;21             }22         }23     });24     if (_isInvalid) {25         return false;26     }

 

我这里借助了一个变量来辅助判断,当不满足条件时设置为 true ,在循环外判断这个变量的值,如果变量的值是 true 则证明又不合法的值,如果变量的值为 false,则证明所需要判断的值都符合要求

Summary

  jquery each 方法中的 return 实际上是不会 return 啊,在 jquery each 方法中 return false,可以借助一个外部变量来辅助实现我们想要的功能。

转载于:https://www.cnblogs.com/weihanli/p/6750297.html

你可能感兴趣的文章
iterable与iterator
查看>>
返回顶部(动画)
查看>>
webpack+react+antd 单页面应用实例
查看>>
Confluence 6 SQL Server 数据库驱动修改
查看>>
Confluence 6 通过 SSL 或 HTTPS 运行 - 备注和问题解决
查看>>
【47.76%】【Round #380B】Spotlights
查看>>
Git(使用码云)
查看>>
分享Java web 开发必游之路
查看>>
IIS初始化(预加载),解决第一次访问慢,程序池被回收问题(转载)
查看>>
Bean的Scope
查看>>
【BZOJ】3142: [Hnoi2013]数列
查看>>
http初探
查看>>
elasticsearch的安装
查看>>
__next__()
查看>>
爬取:中国大学排名
查看>>
聊天室(C++客户端+Pyhton服务器)_1.框架搭设
查看>>
UpdatePanel 内控件 更新“外的”控件【转】
查看>>
mybatis中>=和<=的实现方式
查看>>
Python面向对象03/继承
查看>>
java序列化和反序列化
查看>>