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 相关文章推荐
JavaScript 开发规范要求(图文并茂)
Jun 11 Javascript
Wordpress ThickBox 点击图片显示下一张图的修改方法
Dec 11 Javascript
DeviceOne 让你一见钟情的App快速开发平台
Feb 17 Javascript
JS Attribute属性操作详解
May 19 Javascript
jQuery实现输入框邮箱内容自动补全与上下翻动显示效果【附demo源码下载】
Sep 20 Javascript
Javascript中的async awai的用法
May 17 Javascript
深入讲解xhr(XMLHttpRequest)/jsonp请求之abort
Jul 26 Javascript
简单实现jQuery上传图片显示预览功能
Jun 29 jQuery
详解vue-cli与webpack结合如何处理静态资源
Sep 19 Javascript
JavaScript常见事件对象与操作实例总结
Jan 05 Javascript
echarts饼图各个板块之间的空隙如何实现
Dec 01 Javascript
vscode中使用npm安装babel的方法
Aug 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 应用程序的安全 -- 不能违反的四条安全规则
2006/11/26 PHP
php获取本周开始日期和结束日期的方法
2015/03/09 PHP
详解PHP实现定时任务的五种方法
2016/07/25 PHP
php导出csv文件,可导出前导0实例代码
2016/11/16 PHP
JavaScript聚焦于第一个字段的代码
2010/10/15 Javascript
zeroclipboard 单个复制按钮和多个复制按钮的实现方法
2014/06/14 Javascript
提高NodeJS中SSL服务的性能
2014/07/15 NodeJs
javascript使用数组的push方法完成快速排序
2014/09/15 Javascript
jQuery插件datatables使用教程
2016/04/21 Javascript
JS实现的多张图片轮流播放幻灯片效果
2016/07/22 Javascript
jquery判断对象是否为空并遍历对象的简单实例
2016/07/26 Javascript
javascript 动态样式添加的简单实现
2016/10/11 Javascript
Angular的模块化(代码分享)
2016/12/26 Javascript
nodejs学习笔记之路由
2017/03/27 NodeJs
Nodejs异步回调之异常处理实例分析
2018/06/22 NodeJs
jQuery AJAX 方法success()后台传来的4种数据详解
2018/08/08 jQuery
Angular6 Filter实现页面搜索的示例代码
2018/12/02 Javascript
vue3.0中的双向数据绑定方法及优缺点
2019/08/01 Javascript
Python操作sqlite3快速、安全插入数据(防注入)的实例
2014/04/26 Python
Python中使用copy模块实现列表(list)拷贝
2015/04/14 Python
Python性能提升之延迟初始化
2016/12/04 Python
PyQt5每天必学之切换按钮
2020/08/20 Python
Python测试网络连通性示例【基于ping】
2018/08/03 Python
详解python读取和输出到txt
2019/03/29 Python
python求平均数、方差、中位数的例子
2019/08/22 Python
学会python自动收发邮件 代替你问候女友
2020/05/20 Python
python+requests实现接口测试的完整步骤
2020/10/27 Python
详解利用python识别图片中的条码(pyzbar)及条码图片矫正和增强
2020/11/17 Python
数组越界问题
2015/10/21 面试题
英文自我鉴定
2013/12/10 职场文书
毕业生个人求职信范文分享
2014/01/05 职场文书
关于毕业的中学校园广播稿
2014/01/26 职场文书
鸿星尔克广告词
2014/03/21 职场文书
低碳环保口号
2014/06/12 职场文书
2014国庆节国旗下演讲稿(精选版)
2014/09/26 职场文书
《别在吃苦的年纪选择安逸》读后感3篇
2019/11/30 职场文书