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. Nginx文档-初学者指南

    原文档: http://nginx.org/en/docs/beginners_guide.html 译者:Oopsguy 本指南旨在介绍nginx基本内容和一些在Nginx上可以完成的简单任务.这里 ...

  2. MSDTC启用——分布式事务

    一.前言 最近在做一个项目的时候使用了.NET中的System.Transactions(分布式事务),当项目开发完成以后,调用的时候遇到了MSDTC的问题,在查阅了相关资料后将这个问题解决了,大致的 ...

  3. global,$GLOBALS[' '] 全局, 浮动float跟margin的注意事项

    $a; global只能声明变量为全局,不能赋值,否则报错未定义:global $a; 相对于$GLOBALS['a'],写法是这样的,所有定义过的变量都存在这里: //浮动float跟margin的 ...

  4. MySql 求一段时间范围内的每一天,每一小时,每一分钟

    平常经常会求一段时间内的每一天统计数据,或者每一时点的统计数据.但是mysql本身是没有直接获取时点列表的函数或表.下面是自己用到的一些方法,利用临时变量和一个已存在的比较多数据(这个需要根据实际情况 ...

  5. MongoDB入门命令

    查看所有数据库 > show dbs admin (empty) local 0.078GB > admin和管理相关, admin和local数据库不要轻易动 选择库 > use ...

  6. [POI2008]枪战Maf

    [POI2008]枪战Maf 题目 有n个人,每个人手里有一把手枪.一开始所有人都选定一个人瞄准(有可能瞄准自己).然后他们按某个顺序开枪,且任意时刻只有一个人开枪.因此,对于不同的开枪顺序,最后死的 ...

  7. Protocol Buffers与FlatBuffers效率对比

    Protocol Buffers是Google跨语言.跨平台的通用序列化库.FlatBuffers同样出自Google,而且也跨语言跨平台,但更强调效率,专门为游戏开发打造.在游戏界混了几年,各种各样 ...

  8. Lua Behavior Tree For Unity3D(Lua描述行为树For Unity3D)

    行为树(BTTree)笔记 为什么是Lua版本的行为树 目前国内的手机游戏都标配热更新功能,而游戏AI自然也是MMO游戏的一个标配,比如说挂机的AI,宠物的AI等等. 说起如何用更简单的方式开发AI功 ...

  9. input file样式修改,图片预览删除功能

    本篇对input file进行了修改,改成自己需要的样式,类似验证身份上传身份证图片的功能. 效果图如下: 这里主要展示上传预览图片功能,对于删除功能的html及css写的比较粗糙,对于想要精细表现这 ...

  10. log4j实时将数据写入到kafka,Demo和相关的配置详解

    一:在项目中引入对应的JAR包,如下,注意对应的包与之前包的冲突 <dependencies> <dependency> <groupId>junit</gr ...