jquery 的 each 方法中 return 的坑

Chapter 0

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

Chapter 1

最初的代码:

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

Chapter 2

我的解决方案如下:

修改后的代码:

    var _isInvalid = false;
$(":checkbox[name='insurace-category']:checked").each(function (index, ele) {
var _item = $(".gift_option_item_" + $(ele).val());
if (_item && _item.length > 0) {
var _premium = $.trim($(_item).find(".custom_inputbox").eq(0).val());
var _selectElement = $(_item).find("select");
if (_selectElement && _selectElement.length > 0) {
var _amount = $.trim($(_selectElement).val());
if (!_amount) {
layer.msg("请选择保额!");
$(_selectElement).focus();
_isInvalid = true;
return false;
}
}
if (!_premium) {
layer.msg("请输入保费!");
$(_item).find(".custom_inputbox").eq(0).focus();
_isInvalid = true;
return false;
}
}
});
if (_isInvalid) {
return false;
}
我这里借助了一个变量来辅助判断,当不满足条件时设置为 true ,在循环外判断这个变量的值,如果变量的值是 true 则证明又不合法的值,如果变量的值为 false,则证明所需要判断的值都符合要求

Summary

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

jquery 的 each 方法中 return 的坑的更多相关文章

  1. 在jquery的ajax方法中的success中使用return要注意的问题

    jquery的ajax方法:在success中使用return:来结束程序的时候,结束的只是success这个方法,也就是说success中的return的作用范围只是success: 如果要想在su ...

  2. 用jquery的ajax方法获取return返回值的正确姿势

    如果jquery中,想要获取ajax的return返回值,必须注意两方面,ajax的同步异步问题,在ajax方法里面还是外面进行return返回值. 下面列举了三种写法,如果想成功获取到返回值,参考第 ...

  3. 关于ajax中return并不能作为方法的返回值

    接下来关于ajax中的return值最后没有办法是方法的最终返回值问题 login(username,password) { console.log("进入方法"); $.ajax ...

  4. jquery.on()超级方法

    $.on()方法是jquery1.7之后的一个超级方法,将事件绑定和事件委托整合到一个函数中去,支持绑定多个事件,并且可以绑定自定义事件.使用起来很方便. demo传送门 事件委托 首先说一下事件委托 ...

  5. jQuery – AJAX load() 方法

    jQuery load() 方法 jQuery load() 方法是简单但强大的 AJAX 方法. load() 方法从服务器加载数据,并把返回的数据放入被选元素中. 语法: $(selector). ...

  6. JS事件处理函数中return false到底是什么东西

    在<JS DOM编程艺术>一书中,用return false来阻止事件默认行为,可是js高程3里没有这种用法,那这到底是什么呢. 先看一下知乎的一个解释 就此问题,首先要纠正两个观点: 1 ...

  7. jquery ajax success 函数 异步调用方法中不能给全局变量赋值的原因及解决办法

    jquery ajax success 函数 异步调用方法中不能给全局变量赋值的原因及解决办法   在调用一个jquery的ajax方法时我们有时会需要该方法返回一个值或者给某个全局变量赋值,可是我们 ...

  8. Jquery源码中的Javascript基础知识(四)— jQuery.fn.init方法

    $() 即调用了jQuery.fn.init方法 jQuery = function( selector, context ) { return new jQuery.fn.init( selecto ...

  9. 使用反射机制实现jQuery调用ashx类中的指定方法

    使用反射机制实现jQuery调用ashx类中的指定方法   近期用asp.net做个小网站,但又不喜欢使用asp.net的服务器端控件,经过一番思量后确定前端采用原始的html.后台采用Linq to ...

随机推荐

  1. ReactiveSwift源码解析(九) SignalProducerProtocol延展中的Start、Lift系列方法的代码实现

    上篇博客我们聊完SignalProducer结构体的基本实现后,我们接下来就聊一下SignalProducerProtocol延展中的start和lift系列方法.SignalProducer结构体的 ...

  2. 前端十万个为什么(之一):我们为什么需要npm?

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px ".PingFang SC"; color: #454545 } span ...

  3. unrecognized font family "iconfont2"

    起因:使用React Native开发App,需要使用自定义字体iconfont2.ttf,要在xCode中引入该字体 步骤:将字体文件拷贝到项目工程中,在Info.plist文件中添加Fonts p ...

  4. 如何使用lxml的XPath功能

    用python写爬虫呢,最常见的过滤方式有BeautifulSoup, css selector, XPath, 如果使用前两个,BeautifulSoup包就能解决,然而使用XPath,就要引入lx ...

  5. Hibernate批量操作(二)

    Hibernate提供了一系列的查询接口,这些接口在实现上又有所不同.这里对Hibernate中的查询接口进行一个小结. 我们首先来看一下session加载实体对象的过程:Session在调用数据库查 ...

  6. swift AVAudioPlayer播放音频时声音太小

    设置下声音输出的扬声器就行了 代码如下 do { try AVAudioSession.sharedInstance().overrideOutputAudioPort(AVAudioSessionP ...

  7. Tp3.2提交表单与操作表单

    笔记笔记 先去建个表———— 然后把我输入的东西 存到表里: <input type="submit" id="tijiao" value="提 ...

  8. Windows下搭建Git 服务器: BONOBO GIT SERVER + TortoiseGit

    本文将介绍如何在Windows操作系统下搭建Git服务器和客户端.服务器端采用的是Bonobo Git Server,一款用ASP.NET MVC开发的Git源代码管理工具,界面简洁,基于Web方式配 ...

  9. Misra-Gries 算法

    2017/8/13 12:51:30 一.算法解决的问题 统计频繁项:统计一个数据流中出现频率最高的 k 的元素. 例如 问:k=3,统计数据流 [1,2,1,4,2,5,6,4] 中的频繁项. 答: ...

  10. RocketMQ入门

    本文首先引出消息中间件通常需要解决哪些问题,在解决这些问题当中会遇到什么困难,Apache RocketMQ作为阿里开源的一款高性能.高吞吐量的分布式消息中间件否可以解决,规范中如何定义这些问题.然后 ...