JS实现的全选、全不选及反选功能【案例】


Posted in Javascript onFebruary 19, 2019

本文实例讲述了JS实现的全选、全不选及反选功能。分享给大家供大家参考,具体如下:

效果图如下:点击全选时会全部选中;全不选时全部不选;反选时反向选中.

JS实现的全选、全不选及反选功能【案例】

html结构代码:

<input class = 'check' type="checkbox" >
<input class = 'check' type="checkbox">
<input class = 'check' type="checkbox">
<input class = 'check' type="checkbox">
<input class = 'check' type="checkbox">
<input id="checkAll" type="button" value="全选">
<input id="unCheckAll" type="button" value="全不">
<input id="reverseCheck" type="button" value="反选">

javascript代码如下: 

<script>
  /*一:需求分析:
      (1)点击全选:选中所有选择框(设置checked属性为true)
      (2)点击全不选:不选中所有选择框(设置checked属性为false)
      (3)点击反选:让每一个选择框的checked属性与自身相反
    二:思路分析
        1.获取元素
        2.注册事件
        3.事件处理
  */
  //1.获取页面元素
  var checkAll = document.getElementById('checkAll');//全选
  var unCheckAll = document.getElementById('unCheckAll');//全不选
  var reverseCheck = document.getElementById('reverseCheck');//反选
  var checkList = document.getElementsByClassName('check');//选择框列表
  //2.注册事件
  //2.1 全选
  checkAll.onclick = function(){
    //3.事件处理:选中所有选择框(设置checked属性为true)
    for(var i = 0;i<checkList.length;i++){
      checkList[i].checked = true;
    }
  }
  //2.2 全不选
  unCheckAll.onclick = function(){
    //3.事件处理:不选中所有选择框(设置checked属性为false)
    for(var i = 0;i<checkList.length;i++){
      checkList[i].checked = false;
    }
  }
  //2.3 反选
  reverseCheck.onclick = function(){
    //3.事件处理:让每一个选择框的checked属性与自身相反
    for(var i = 0;i<checkList.length;i++){
      checkList[i].checked = !checkList[i].checked;//逻辑非取反
      // if (checkList[i].checked == true){
      //   checkList[i].checked = false;
      // }else{//false
      //   checkList[i].checked = true;
      // }
    }
  }
</script>

完整示例代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>3water.com JS全选、全不选、反选</title>
</head>
<body>
<input class = 'check' type="checkbox" >
<input class = 'check' type="checkbox">
<input class = 'check' type="checkbox">
<input class = 'check' type="checkbox">
<input class = 'check' type="checkbox">
<input id="checkAll" type="button" value="全选">
<input id="unCheckAll" type="button" value="全不">
<input id="reverseCheck" type="button" value="反选">
<script>
  /*一:需求分析:
      (1)点击全选:选中所有选择框(设置checked属性为true)
      (2)点击全不选:不选中所有选择框(设置checked属性为false)
      (3)点击反选:让每一个选择框的checked属性与自身相反
    二:思路分析
        1.获取元素
        2.注册事件
        3.事件处理
  */
  //1.获取页面元素
  var checkAll = document.getElementById('checkAll');//全选
  var unCheckAll = document.getElementById('unCheckAll');//全不选
  var reverseCheck = document.getElementById('reverseCheck');//反选
  var checkList = document.getElementsByClassName('check');//选择框列表
  //2.注册事件
  //2.1 全选
  checkAll.onclick = function(){
    //3.事件处理:选中所有选择框(设置checked属性为true)
    for(var i = 0;i<checkList.length;i++){
      checkList[i].checked = true;
    }
  }
  //2.2 全不选
  unCheckAll.onclick = function(){
    //3.事件处理:不选中所有选择框(设置checked属性为false)
    for(var i = 0;i<checkList.length;i++){
      checkList[i].checked = false;
    }
  }
  //2.3 反选
  reverseCheck.onclick = function(){
    //3.事件处理:让每一个选择框的checked属性与自身相反
    for(var i = 0;i<checkList.length;i++){
      checkList[i].checked = !checkList[i].checked;//逻辑非取反
      // if (checkList[i].checked == true){
      //   checkList[i].checked = false;
      // }else{//false
      //   checkList[i].checked = true;
      // }
    }
  }
</script>
</body>
</html>

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码运行效果。

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
js 巧妙去除数组中的重复项
Jan 25 Javascript
使用原生javascript创建通用表单验证——更锋利的使用dom对象
Sep 13 Javascript
jquery插件之定时查询待处理任务数量
May 01 Javascript
学习使用grunt来打包JavaScript和CSS程序的教程
Jan 04 Javascript
基于JavaScript实现鼠标悬浮弹出跟随鼠标移动的带箭头的信息层
Jan 18 Javascript
利用JS制作万年历的方法
Aug 16 Javascript
vue.js异步上传文件前后端实现代码
Aug 22 Javascript
js自定义trim函数实现删除两端空格功能
Feb 09 Javascript
Vue中使用sass实现换肤功能
Sep 07 Javascript
用图片替换checkbox原始样式并实现同样的功能
Nov 15 Javascript
vue路由分文件拆分管理详解
Aug 13 Javascript
Javascript中async与await的捕捉错误详解
Mar 03 Javascript
JS/jQuery实现简单的开关灯效果【案例】
Feb 19 #jQuery
Vue结合后台导入导出Excel问题详解
Feb 19 #Javascript
Vue.js实现可排序的表格组件功能示例
Feb 19 #Javascript
Angular7创建项目、组件、服务以及服务的使用
Feb 19 #Javascript
小程序转发探索示例
Feb 19 #Javascript
JS异步执行结果获取的3种解决方式
Feb 19 #Javascript
jQuery AJAX与jQuery事件的分析讲解
Feb 18 #jQuery
You might like
zend framework多模块多布局配置
2011/02/26 PHP
PHP无限分类代码,支持数组格式化、直接输出菜单两种方式
2011/05/18 PHP
php4与php5的区别小结(配置异同)
2011/12/20 PHP
php中设置index.php文件为只读的方法
2013/02/06 PHP
关于PHP结束标签的使用细节探讨及联想
2013/03/04 PHP
php获取汉字拼音首字母的方法
2015/10/21 PHP
PHP简单遍历对象示例
2016/09/28 PHP
thinkPHP框架整合tcpdf插件操作示例
2018/08/07 PHP
详解PHP队列的实现
2019/03/14 PHP
通过代码实例解析PHP session工作原理
2020/12/11 PHP
让您的菜单不离网站
2006/10/03 Javascript
一种JavaScript的设计模式
2006/11/22 Javascript
Javascript load Page,load css,load js实现代码
2010/03/31 Javascript
可编辑下拉框的2种实现方式
2014/06/13 Javascript
extjs每个组件要设置唯一的ID否则会出错
2014/06/15 Javascript
JS实现兼容各浏览器解析XML文档数据的方法
2015/06/01 Javascript
Jq通过td获取同行其它列td的方法
2016/10/05 Javascript
JavaScript中常用的验证reg
2016/10/13 Javascript
js oncontextmenu事件使用详解
2017/03/25 Javascript
jQuery动态移除与增加onclick属性的方法详解
2018/06/07 jQuery
vue使用v-if v-show页面闪烁,div闪现的解决方法
2018/10/12 Javascript
JS实现根据数组对象的某一属性排序操作示例
2019/01/14 Javascript
NodeJS多种创建WebSocket监听的方式(三种)
2020/06/04 NodeJs
Python的Django中django-userena组件的简单使用教程
2015/05/30 Python
深入浅析ImageMagick命令执行漏洞
2016/10/11 Python
Python编程之gui程序实现简单文件浏览器代码
2017/12/08 Python
Python队列、进程间通信、线程案例
2019/10/25 Python
Python argparse模块应用实例解析
2019/11/15 Python
Pycharm中安装wordcloud等库失败问题及终端通过pip安装的Python库如何添加到Pycharm解释器中(推荐)
2020/05/10 Python
使用HTML5 Geolocation实现一个距离追踪器
2018/04/09 HTML / CSS
上海雨人软件技术开发有限公司测试题
2015/07/14 面试题
精彩的广告词
2014/03/19 职场文书
关于环保的标语
2014/06/13 职场文书
意外伤害赔偿协议书范本
2014/09/28 职场文书
廉政承诺书范文
2015/04/28 职场文书
开学第一周值周总结
2015/07/16 职场文书