JS中fori和forEach跳出循环的问题
在hmtl中写一个全选/反选的功能,选中全选时所有的复选框全部选中,相反,只要有一个复选框被取消选中,全选也会被取消选中。为此写了两个函数,非全选的复选框都用forEach循环。
function checkAll() {var all = document.getElementById("all");var oneList = document.getElementsByName("one");oneList.forEach(function (one){one.checked = all.checked});}function checkOne() {var all = document.getElementById("all");var oneList = document.getElementsByName("one");oneList.forEach(function (one){if(one.checked == false){all.checked = false;return;}});all.checked = true;}
checkAll函数没有问题,checkOne就不对劲了。在循环里加了个alert(one.checked),将全选取消,随便点击一个非全选选框,发现alert不停地跳,有几个没选中的框就跳几下。
分析一下,明白过来,forEach的参数是一个回调函数,return的是这个回调函数,并不能跳出循环,oneList中所有的元素都要在回调函数中走一遍。将return换成break也没用,道理是一样的,break不能作用于forEach。因此将forEach换成fori。
function checkOne() {var all = document.getElementById("all");var oneList = document.getElementsByName("one");for(let i=0; i<oneList.length;i++){if(oneList[i].checked == false){all.checked = false;return;}}all.checked = true;}
总结一下,在不需要跳循环也用不到索引的场合,用forEach写法还是比较方便的;一旦需要跳循环,还是用fori比较方便。
JS中fori和forEach跳出循环的问题相关推荐
- JS中map和foreach的区别以及some和every的用法
转载自:小猪冒泡 的 原生JS forEach()和map()遍历 一.原生JS forEach()和map()遍历 共同点: 1.都是循环遍历数组中的每一项.2.forEach() 和 map() ...
- JS中如何跳出.forEach循环
写在前面 提到在一段程序中如果碰到需要终止,结束一个循环,函数或者一段代码,一般会想到以下这几个关键字return.continue.break 简述一下三者的区别: break: 终止整个循环(有内 ...
- js中 如何终止foreach循环?
forEach专门用来循环数组,可以直接取到元素,同时也可以取到index值 存在局限性,不能continue跳过或者break终止循环,没有返回值,不能return 终止foreach循环 :运用抛 ...
- 使用JS中EL数组中循环取值
1.在JS代码中可以使用使用<c:foreach>进行循环取值 Java: List list = new ArrayList(); request.setAttribute(" ...
- js中forEach以及forEach跳出循环
for与forEach的区别 1.for循环可以使用break跳出循环,但forEach不能.那forEach能不能跳出循环呢?可以,不过不是使用break,而是结合try catch操作(下面有写如 ...
- JS中find(), findIndex(), filter(), forEach(), some(), every(), map()方法
1. find()与findIndex() find()方法,用于找出第一个符合条件的数组成员.它的参数是一个回调函数,所有数组成员依次执行该回调函数,直到找出第一个返回值为true的成员,然后返回该 ...
- jsfor循环终止_【JavaScript】JS中如何跳出循环/结束遍历
直接抛结论,下表是JS中常用的实现循环遍历的方法的跳出/结束遍历的办法,经过测试后的总结.可能各位大佬还有其他的办法,我在此表示大佬NB. 序号 方法 break continue return re ...
- js for forEach 跳出循环方式
js for forEach 跳出循环方式 文章目录 js for forEach 跳出循环方式 前言 一.for循环 二.for in 循环 三.forEach循环 问题 解决办法 前言 JS中的循 ...
- js中跳出循环用for()
js中跳出循环用for() //forEach和return结合 不能打破循环 for与break结合使用 能打破循环var arr= [1,2,3]arr.forEach((item,index)= ...
最新文章
- html制作百度首页的图片不显示,html实现像百度的首页效果一样的背景图(代码)...
- response获取响应内容_Project Reactor 深度解析 - 1. 响应式编程介绍,实现以及现有问题
- P6113-[模板]一般图最大匹配【带花树】
- 《四世同堂》金句摘抄(十五)
- 1093 字符串A+B (20 分)
- php 空模块,tp5.1配置空模块,空方法
- cocos2dx中关于Action动作的相关API的具体介绍
- Android 11正式发布:小米、OPPO等手机将陆续更新
- java arraylist对象_Java中ArrayList的对象引用问题
- ast java_一种基于AST的Java代码SSA单路径的生成方法技术
- 【数竞笔记2】—— 常见积分方法
- PDF文件太大,两个超级实用方法压缩PDF
- IT博客大赛——我的写博历程和拉票方法
- 【数据预处理】Pandas缺失的数据处理
- 东方博宜OJ——1007 - 【入门】统计大写英文字母的个数
- GIS可视化—热力图制作与热点分析(一)
- c语言编程队名,比赛团队队名及口号
- 中南大学941计算机网络考试大纲,中南大学计算机网络问答题
- 【ps功能精通】8.形状工具
- 机电管线综合布置的原则分析
热门文章
- java环境变量修改不了_win10系统安装了jdk,修改环境变量配置不生效的解决方法...
- python 定义函数方法_Python动态定义函数的方法介绍
- 国王放米粒的C语言程序,云南大学软件学院C语言实验米粒问题.doc
- php 调用变量方法名,php中引用(变量和函数名前加符号)用法
- java 前端页面调用数据库_java如何生成json被前端调用
- solidworks钣金插件_SolidWorks钣金三圆弧交点如何展开?大神和小白请进
- scrapy的post登录:renren
- centos7的网络设置
- windows主机网络信息获取程序设计
- MyEclipse中用Maven创建Web项目