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 相关文章推荐
window.location不跳转的问题解决方法
Apr 17 Javascript
jquery+php随机生成红包金额数量代码分享
Aug 27 Javascript
jQuery中的ajax async同步和异步详解
Sep 29 Javascript
JavaScript中的对象继承关系
Aug 01 Javascript
解决node.js安装包失败的几种方法
Sep 02 Javascript
微信页面倒计时代码(解决safari不兼容date的问题)
Dec 13 Javascript
angularJS 发起$http.post和$http.get请求的实现方法
May 18 Javascript
JavaScript之Map和Set_动力节点Java学院整理
Jun 29 Javascript
jQuery中库的引用方法
Jan 06 jQuery
小程序自定义导航栏兼容适配所有机型(附完整案例)
Apr 26 Javascript
layui使用及简单的三级联动实现教程
Dec 01 Javascript
javascript Number 与 Math对象的介绍
Nov 17 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 修复未正常关闭的HTML标签实现代码(支持嵌套和就近闭合)
2012/06/07 PHP
PHP写的加密函数,支持私人密钥(详细介绍)
2013/06/09 PHP
php启用zlib压缩文件的配置方法
2013/06/12 PHP
php session劫持和防范的方法
2013/11/12 PHP
PHP加密解密字符串汇总
2015/04/26 PHP
php 开发中加密的几种方法总结
2017/03/22 PHP
用正则xmlHttp实现的偷(转)
2007/01/22 Javascript
JavaScript性能陷阱小结(附实例说明)
2010/12/28 Javascript
表格单元格交错着色实现思路及代码
2013/04/01 Javascript
Js控制弹窗实现在任意分辨率下居中显示
2013/08/01 Javascript
利用CSS、JavaScript及Ajax实现高效的图片预加载
2013/10/16 Javascript
jQuery获取当前对象标签名称的方法
2014/02/07 Javascript
JavaScript实现的购物车效果可以运用在好多地方
2014/05/09 Javascript
VueJS如何引入css或者less文件的一些坑
2017/04/25 Javascript
Vue2.5 结合 Element UI 之 Table 和 Pagination 组件实现分页功能
2018/01/26 Javascript
JS点击动态添加标签、删除指定标签的代码
2018/04/18 Javascript
layui table 表格模板按钮的实例代码
2019/09/21 Javascript
javascript实现随机抽奖功能
2020/12/30 Javascript
Vue看了就会的8个小技巧
2021/01/21 Vue.js
python自动化测试之连接几组测试包实例
2014/09/28 Python
Python实现树的先序、中序、后序排序算法示例
2017/06/23 Python
python 提取key 为中文的json 串方法
2018/12/31 Python
Python变量访问权限控制详解
2019/06/29 Python
在Python3.74+PyCharm2020.1 x64中安装使用Kivy的详细教程
2020/08/07 Python
如何使用canvas绘制可移动网格的示例代码
2020/12/14 HTML / CSS
德国PC硬件网站:CASEKING
2016/10/20 全球购物
Dogeared官网:在美国手工制作的珠宝
2019/08/24 全球购物
公司活动策划方案
2014/01/13 职场文书
幼儿园教师奖惩制度
2014/02/01 职场文书
小学生操行评语
2014/04/22 职场文书
工作失职检讨书500字
2014/10/17 职场文书
2014年妇女工作总结
2014/12/06 职场文书
干部年终考核评语
2015/01/04 职场文书
商务英语求职信范文
2015/03/19 职场文书
2015年药店工作总结
2015/04/20 职场文书
导游词之鲁迅祖居
2019/10/17 职场文书