在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跳出循环的问题相关推荐

  1. JS中map和foreach的区别以及some和every的用法

    转载自:小猪冒泡 的 原生JS forEach()和map()遍历 一.原生JS forEach()和map()遍历 共同点: 1.都是循环遍历数组中的每一项.2.forEach() 和 map() ...

  2. JS中如何跳出.forEach循环

    写在前面 提到在一段程序中如果碰到需要终止,结束一个循环,函数或者一段代码,一般会想到以下这几个关键字return.continue.break 简述一下三者的区别: break: 终止整个循环(有内 ...

  3. js中 如何终止foreach循环?

    forEach专门用来循环数组,可以直接取到元素,同时也可以取到index值 存在局限性,不能continue跳过或者break终止循环,没有返回值,不能return 终止foreach循环 :运用抛 ...

  4. 使用JS中EL数组中循环取值

    1.在JS代码中可以使用使用<c:foreach>进行循环取值 Java: List list = new ArrayList(); request.setAttribute(" ...

  5. js中forEach以及forEach跳出循环

    for与forEach的区别 1.for循环可以使用break跳出循环,但forEach不能.那forEach能不能跳出循环呢?可以,不过不是使用break,而是结合try catch操作(下面有写如 ...

  6. JS中find(), findIndex(), filter(), forEach(), some(), every(), map()方法

    1. find()与findIndex() find()方法,用于找出第一个符合条件的数组成员.它的参数是一个回调函数,所有数组成员依次执行该回调函数,直到找出第一个返回值为true的成员,然后返回该 ...

  7. jsfor循环终止_【JavaScript】JS中如何跳出循环/结束遍历

    直接抛结论,下表是JS中常用的实现循环遍历的方法的跳出/结束遍历的办法,经过测试后的总结.可能各位大佬还有其他的办法,我在此表示大佬NB. 序号 方法 break continue return re ...

  8. js for forEach 跳出循环方式

    js for forEach 跳出循环方式 文章目录 js for forEach 跳出循环方式 前言 一.for循环 二.for in 循环 三.forEach循环 问题 解决办法 前言 JS中的循 ...

  9. js中跳出循环用for()

    js中跳出循环用for() //forEach和return结合 不能打破循环 for与break结合使用 能打破循环var arr= [1,2,3]arr.forEach((item,index)= ...

最新文章

  1. html制作百度首页的图片不显示,html实现像百度的首页效果一样的背景图(代码)...
  2. response获取响应内容_Project Reactor 深度解析 - 1. 响应式编程介绍,实现以及现有问题
  3. P6113-[模板]一般图最大匹配【带花树】
  4. 《四世同堂》金句摘抄(十五)
  5. 1093 字符串A+B (20 分)
  6. php 空模块,tp5.1配置空模块,空方法
  7. cocos2dx中关于Action动作的相关API的具体介绍
  8. Android 11正式发布:小米、OPPO等手机将陆续更新
  9. java arraylist对象_Java中ArrayList的对象引用问题
  10. ast java_一种基于AST的Java代码SSA单路径的生成方法技术
  11. 【数竞笔记2】—— 常见积分方法
  12. PDF文件太大,两个超级实用方法压缩PDF
  13. IT博客大赛——我的写博历程和拉票方法
  14. 【数据预处理】Pandas缺失的数据处理
  15. 东方博宜OJ——1007 - 【入门】统计大写英文字母的个数
  16. GIS可视化—热力图制作与热点分析(一)
  17. c语言编程队名,比赛团队队名及口号
  18. 中南大学941计算机网络考试大纲,中南大学计算机网络问答题
  19. 【ps功能精通】8.形状工具
  20. 机电管线综合布置的原则分析

热门文章

  1. java环境变量修改不了_win10系统安装了jdk,修改环境变量配置不生效的解决方法...
  2. python 定义函数方法_Python动态定义函数的方法介绍
  3. 国王放米粒的C语言程序,云南大学软件学院C语言实验米粒问题.doc
  4. php 调用变量方法名,php中引用(变量和函数名前加符号)用法
  5. java 前端页面调用数据库_java如何生成json被前端调用
  6. solidworks钣金插件_SolidWorks钣金三圆弧交点如何展开?大神和小白请进
  7. scrapy的post登录:renren
  8. centos7的网络设置
  9. windows主机网络信息获取程序设计
  10. MyEclipse中用Maven创建Web项目