JS实现多选框的操作


Posted in Javascript onJune 24, 2020

本文实例为大家分享了JS实现多选框的具体代码,供大家参考,具体内容如下

JS实现多选框的操作

多选时:

JS实现多选框的操作

全选时:

JS实现多选框的操作

反选时:

JS实现多选框的操作

html代码

<div class="container">
 <h3>请选择你最喜欢吃的水果(多选)</h3>
 <ul>
  <li><input type="checkbox">苹果</li>
  <li><input type="checkbox">雪梨</li>
  <li><input type="checkbox">西瓜</li>
  <li><input type="checkbox">哈密瓜</li>
  <li><input type="checkbox">荔枝</li>
  <li><input type="checkbox">龙眼</li>
 </ul>
 <div class="checkinAll">
  <input type="checkbox" id="checkAll">全选/非全选
  <input type="checkbox" id="checkTurn">反选
 </div>
</div>

CSS代码:

*{
  margin: 0;
  padding: 0;
}
.container{
  width: 300px;
  /* height: 500px; */
  /* border: 1px solid black; */
  margin: 10px auto;
}
.container ul{
  list-style: none;
  width: 100%;
  margin-top: 20px;
  border: 1px solid #666;
  border-radius: 10px;
  margin-bottom: 10px;
}
.container ul li{
  width: 100%;
  height: 70px;
  border-bottom: 1px solid #666;
  line-height: 70px;
  text-indent: 50px;
  font-size: 16px;
  font-weight: 600;
  
}
.container ul li:last-child{
  border-radius: 0 0 11px 11px;
  border: none;
}
.container ul li:first-child{
  border-radius: 11px 11px 0 0;
   /* border: none; */
 }
input[type='checkbox']{
  width: 20px;
  height: 20px;
  vertical-align: middle;
  cursor: pointer;
  -webkit-appearance: none;
  border: 1px solid #666;
  border-radius: 3px;
}
input[type='checkbox']:checked{
  background-image: url(./select.png);
  background-repeat: no-repeat;
  background-position: center center;
  background-size: 100% 100%;
  outline: none;
}
ul input{
  margin-right: 40px;
}

JS代码:

(function(){
  const list_node = document.getElementsByTagName('li');
  const ul_node = document.getElementsByTagName('ul')[0]
  const colorArr = ['rgb(255,235,205)','rgb(255,240,245)','rgb(255,211,155)'];
  const check_nodes = ul_node.getElementsByTagName('input');
  const checkAll = document.getElementById('checkAll');
  const checkTurn = document.getElementById('checkTurn')
  for(let i = 0; i < list_node.length; i++){
    list_node[i].style.backgroundColor = colorArr[i % colorArr.length];
    list_node[i].addEventListener('click',clickFn);
  }
  function clickFn(e){
    console.log(e.target.tagName);
    let num = 0;
   if(e.target.tagName == 'INPUT' && e.target.checked == false){
     checkAll.checked = false;
   }else{
    for (let i = 0; i < check_nodes.length; i++) {
      if(check_nodes[i].checked == true){
        num++;
      }
      
    }
    if(num == check_nodes.length){
      checkAll.checked = true;
    }
   }
  }
  //全选/非全选
  checkAll.onclick = function(){
    if(this.checked == true){
      for (let i = 0; i < check_nodes.length; i++) {
        check_nodes[i].checked = true;
        
      }
    }else{
      for (let i = 0; i < check_nodes.length; i++) {
        check_nodes[i].checked = false;
        
      }
    }
  }
  //反选
  checkTurn.onclick = function(){
    let count = 0;
    let num = 0;
    for (let i = 0; i < check_nodes.length; i++) {
      if(check_nodes[i].checked == true){
      check_nodes[i].checked = false;
      count ++;
      }else{
      check_nodes[i].checked = true;
      num++;
      }
      
    }
    if(count == check_nodes.length){
      checkAll.checked = false;
    }else if(num == check_nodes.length){
      checkAll.checked = true;
    }
  }
})()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery判断RadioButtonList和RadioButton中是否有选中项示例
Sep 29 Javascript
javascript函数重载解决方案分享
Feb 19 Javascript
深入理解javascript中的立即执行函数(function(){…})()
Jun 12 Javascript
基于Flowplayer打造一款免费的WEB视频播放器附源码
Sep 06 Javascript
JavaScritp添加url参数并将参数加入到url中及更改url参数的方法
Oct 26 Javascript
关于cookie的初识和运用(js和jq)
Apr 07 Javascript
AngularJS中关于ng-class指令的几种实现方式详解
Sep 17 Javascript
微信小程序template模版的使用方法
Apr 13 Javascript
vue cli 3.x 项目部署到 github pages的方法
Apr 17 Javascript
Vue事件修饰符native、self示例详解
Jul 09 Javascript
小程序跨页面交互的作用与方法详解
Jan 07 Javascript
vue项目在webpack2实现移动端字体自适配功能
Jun 02 Javascript
微信小程序实现发微博功能的示例代码
Jun 24 #Javascript
JavaScript实现答题评分功能页面
Jun 24 #Javascript
JS实现电脑虚拟键盘打字测试
Jun 24 #Javascript
JS实现简单打字测试
Jun 24 #Javascript
微信小程序实现多选框功能的实例代码
Jun 24 #Javascript
JS实现电脑虚拟键盘的操作
Jun 24 #Javascript
基于PHP pthreads实现多线程代码实例
Jun 24 #Javascript
You might like
php中获取指定IP的物理地址的代码(正则表达式)
2011/06/23 PHP
Linux下php5.4启动脚本
2014/08/03 PHP
PHP ADODB实现分页功能简单示例
2018/05/25 PHP
JS IE和FF兼容性问题汇总
2009/02/09 Javascript
使用JQuery和s3captche实现一个水果名字的验证
2009/08/14 Javascript
jquery实现的导航固定效果
2014/04/28 Javascript
JavaScript淡入淡出渐变简单实例
2015/08/06 Javascript
jquery实现鼠标滑过显示二级下拉菜单效果
2015/08/24 Javascript
AngularJS+Bootstrap实现多文件上传与管理
2016/11/08 Javascript
Bootstrap基本组件学习笔记之导航(10)
2016/12/07 Javascript
Angular的事件和表单详解
2016/12/26 Javascript
JQuery实现动态操作表格
2017/01/11 Javascript
关于TypeScript中import JSON的正确姿势详解
2017/07/25 Javascript
JavaScript面试技巧之数组的一些不low操作
2019/03/22 Javascript
原生js实现3D轮播图
2020/03/21 Javascript
微信浏览器下拉黑边解决方案 wScroollFix
2020/01/21 Javascript
[04:17]DOTA2完美盛典,rOtk、BurNIng携手巴图演唱《倔强》
2017/11/28 DOTA
Python中的类学习笔记
2014/09/23 Python
Python本地与全局命名空间用法实例
2015/06/16 Python
python下setuptools的安装详解及No module named setuptools的解决方法
2017/07/06 Python
Django 浅谈根据配置生成SQL语句的问题
2018/05/29 Python
基于Python列表解析(列表推导式)
2018/06/23 Python
Python 实现中值滤波、均值滤波的方法
2019/01/09 Python
python学生管理系统开发
2019/01/30 Python
keras中epoch,batch,loss,val_loss用法说明
2020/07/02 Python
用python批量下载apk
2020/12/29 Python
CSS3实例分享--超炫checkbox复选框和radio单选框
2014/09/01 HTML / CSS
德国体育用品网上商店:SC24.com
2016/08/01 全球购物
沪江旗下的海量优质课程平台:沪江网校
2017/11/07 全球购物
汽车电子与维修专业大学生求职信
2013/09/28 职场文书
环境工程与管理大学毕业生求职信
2013/10/02 职场文书
遗产继承公证书
2014/04/09 职场文书
小学生优秀评语
2014/12/29 职场文书
会计求职自荐信
2015/03/26 职场文书
Nginx同一个域名配置多个项目的实现方法
2021/03/31 Servers
Spring Data JPA使用JPQL与原生SQL进行查询的操作
2021/06/15 Java/Android