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判断IE6等浏览器的代码
Apr 05 Javascript
javascript权威指南 学习笔记之javascript数据类型
Sep 24 Javascript
jquery之超简单的div显示和隐藏特效demo(分享)
Jul 09 Javascript
Flex通过JS获取客户端IP和计算机名的实例代码
Nov 21 Javascript
JavaScript onkeypress事件入门实例(按下或按住一个键盘按键)
Oct 17 Javascript
jQuery采用连缀写法实现的折叠菜单效果
Sep 18 Javascript
解析JavaScript实现DDoS攻击原理与保护措施
Dec 26 Javascript
Angular JS 生成动态二维码的方法
Feb 23 Javascript
基于cropper.js封装vue实现在线图片裁剪组件功能
Mar 01 Javascript
JavaScript Canvas实现验证码
Aug 02 Javascript
Node.js+Vue脚手架环境搭建的方法步骤
Mar 08 Javascript
vue 添加和编辑用同一个表单,el-form表单提交后清空表单数据操作
Aug 03 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查找与搜索数组元素方法总结
2015/06/12 PHP
php基本函数汇总
2015/07/09 PHP
JQuery中each()的使用方法说明
2010/08/19 Javascript
一些主流JS框架中DOMReady事件的实现小结
2011/02/12 Javascript
用JS判别浏览器种类以及IE版本的几种方法小结
2011/08/02 Javascript
JavaScript中setAttribute用法介绍
2013/07/20 Javascript
JS的location.href跳出框架打开新页面的方法
2014/09/04 Javascript
jquery实现两个图片渐变切换效果的方法
2015/06/25 Javascript
javascript+ajax实现产品页面加载信息
2015/07/09 Javascript
详解jquery事件delegate()的使用方法
2016/01/25 Javascript
JavaScript判断DIV内容是否为空的方法
2016/01/29 Javascript
JavaScript的ExtJS框架中数面板TreePanel的使用实例解析
2016/05/21 Javascript
详解javascript获取url信息的常见方法
2016/12/19 Javascript
jQuery实现拖动效果的实例代码
2017/06/25 jQuery
vue-cli开发时,关于ajax跨域的解决方法(推荐)
2018/02/03 Javascript
JavaScript 有用的代码片段和 trick
2018/02/22 Javascript
Vue自定义过滤器格式化数字三位加一逗号实现代码
2018/03/23 Javascript
微信小程序实现多选框功能的实例代码
2020/06/24 Javascript
vue 点击其他区域关闭自定义div操作
2020/07/17 Javascript
python错误:AttributeError: 'module' object has no attribute 'setdefaultencoding'问题的解决方法
2014/08/22 Python
Python 实现简单的电话本功能
2015/08/09 Python
pd.DataFrame统计各列数值多少的实例
2019/12/05 Python
Python中zip()函数的解释和可视化(实例详解)
2020/02/16 Python
基于django micro搭建网站实现加水印功能
2020/05/22 Python
python字典key不能是可以是啥类型
2020/08/04 Python
如何在Python3中使用telnetlib模块连接网络设备
2020/09/21 Python
python eventlet绿化和patch原理
2020/11/21 Python
5个你不知道的HTML5的接口介绍
2013/08/07 HTML / CSS
html5使用canvas实现跟随光标跳动的火焰效果
2014/01/07 HTML / CSS
美国著名童装品牌:OshKosh B’gosh
2016/08/05 全球购物
美国滑雪板和装备购物网站:Skis.com
2018/12/20 全球购物
一句话工作感言
2014/03/01 职场文书
家长寄语大全
2014/04/02 职场文书
2015年环卫处个人工作总结
2015/07/27 职场文书
导游词之新疆尼雅遗址
2019/10/16 职场文书
Go 实现英尺和米的简单单位换算方式
2021/04/29 Golang