布局上大体是这个样子

<div id=""><div><span class="all"></span>我是全选按钮</div><div><span class="notall"></span>单选1<br /><span class="notall"></span>单选2<br /><span class="notall"></span>单选3<br /><span class="notall"></span>单选4<br /><span class="notall"></span>单选5<br /><span class="notall"></span>单选6<br /><span class="notall"></span>单选7</div></div>

接下来是js逻辑,
第一步是全选按钮的点击事件,比较简单,点击之后,判断全选按钮是否有一个选中的属性,没有选中属性就加上选中属性,添加active的类名,并把所有的小的按钮全部添加选中属性和active类名,反之,同理,消除所有的选中属性和active类名。

$(".all").click(function(){if($(this).attr("rel")!="checked"){        //判断 全选按钮rel属性是否选中$(this).attr("rel","checked")         //选中的话 设置checked    active$(this).addClass("active")              $(".notall").attr("rel","checked")        //设置所有单选设置checked   active$(".notall").addClass("active")           }else{$(this).removeAttr("rel","checked")   //全选按钮未选中,移除全选按钮 active属性$(this).removeClass("active")$(".notall").removeAttr("rel","checked")  //移除所有单选    checked active$(".notall").removeClass("active")}})

接下来就是单个的按钮的选中控制,
因为要所有的按钮都选中之后,全选按钮自动亮起,所以在单个按钮的点击事件中创建一个数组,填入每个按钮的rel属性,在这个数组中如果有rel属性的值是undefined,就代表没有全部选中,如果没有rel的值是undefined,则就是全部选中,从而进行控制全选按钮的样式

$(".notall").click(function(){var all=[];if($(this).attr("rel")!="checked"){     //判断单选按钮 是否选中$(this).attr("rel","checked")          //选中的话  设置 为checked  添加 active$(this).addClass("active")              }else{$(this).removeAttr("rel","checked")   //未选中的话    移除 为checked active$(this).removeClass("active")}for(let i=0;i<$(".notall").length;i++){        //往数组里面 循环添加  各个单选的rel属性all.push($(".notall").eq(i).attr("rel"))}if(all.indexOf(undefined)>=0){             //如果数组里面有 undefined  说明有某个或者多个 单选 没有被选中$(".all").removeAttr("rel","checked")$(".all").removeClass("active")}else{$(".all").attr("rel","checked")                //否则  说明全部被选中  ---> 打开全选 $(".all").addClass("active")}})

全选反选的逻辑和代码相关推荐

  1. 用js创建表格及全选反选

    用js创建表格及全选反选 用js代码来实现创建表格,及全选反选,代码效果图如下: <!DOCTYPE html> <html lang="en"><h ...

  2. JSjQuery全选反选父项子项联动多选框

    全选反选父项子项联动多选框 js代码:<!DOCTYPE html><html lang="en"><head> <meta charse ...

  3. android 批量查找view,Android Recyclerview实现多选,单选,全选,反选,批量删除的功能

    效果图如下: recyclerview 实现多选,单选,全选,反选,批量删除的步骤 1.在recyclerview布局中添加上底部的全选和反选按钮,删除按钮,和计算数量等控件 2.这里选中的控件没有用 ...

  4. 【HTML5】页面点击按钮添加一行 删除一行 全选 反选 全不选

    页面点击按钮添加一行    删除一行   全选   反选  全不选 页面效果图如下 html页面代码 <!DOCTYPE html> <html><head>< ...

  5. JQuery全选反选 随其他checkbox自动勾选全选反选

    工作中的代码片段 写出来留作以后对比参考 网上没找到自己想要的全选反选代码 干脆自己写了个比较臃肿的 相信还有更加简单的方法 jquery代码 ============================ ...

  6. 关于JQuery全选/反选第二次失效的问题

    最近在项目中,遇到一个问题,测试全选/反选功能时,第一次对母框进行选中/非选中时,能同步子框的全选/反选状态,之后再点击母框,子框就没反应了.原代码大致结构关键如下: function selectA ...

  7. android 全选功能,Android Recyclerview实现多选,单选,全选,反选,批量删除的功能

    效果图如下: Recyclerview 实现多选,单选,全选,反选,批量删除的步骤 1.在Recyclerview布局中添加上底部的全选和反选按钮,删除按钮,和计算数量等控件 2.这里选中的控件没有用 ...

  8. html dom反选,Dom操作--全选反选

    我们经常会在网站上遇到一些多选的情况,下面我就来说说使用Dom写全选反选的思路. 全选思路: 首先,我们来分析一下知道,当我们点击"全选"复选框的时候,所有的复选框应该都被选中,那 ...

  9. java做全选反选功能_[Java教程]js实现全选反选

    [Java教程]js实现全选反选 0 2017-04-04 00:00:12 在前端中用到全选反选的案例并不少,在这里呢我就实现这个功能给大家参考参考. 这里呢就先贴上我的html和css代码 快递 ...

最新文章

  1. 95%粉丝失联,小编感觉像失恋?
  2. 日期DatePicker与时间TimePicker控件
  3. HTTP缓存原理介绍
  4. Spring 嵌套方法AOP不生效问题
  5. MVVM模式的3种command总结[2]--RelayCommand
  6. 作业帮电脑版在线使用_互助作业帮PC版-互助作业帮电脑版下载 v4.5.8
  7. 【HihoCoder - 1831】80 Days(尺取 或 线段树)
  8. 这轮AI才刚刚启动,就开始有人谈AI泡沫了?
  9. tcpserver检测断开qt_QTcpServer或QTcpClient(在服务器端)知道,已连接的客户端现已断开连接...
  10. (29)Spring boot 文件上传(多文件上传)【从零开始学Spring Boot】
  11. 如何生成白底一寸照?怎么制作白底证件照?
  12. 微信JS接口安全域名设置不成功,提示没有找到文件
  13. 服务器无线桥接怎么设置,高科路由器怎么设置无线中继 | 192路由网
  14. 张宏系列又又双叒叕售罄了
  15. Python处理Windows记事本utf8编码文件要注意的坑
  16. 向量组相关定理及其推论
  17. 1分钟链圈 | 告急告急!区块链人才极度稀缺,需求三年爆增19倍;区块链板块早盘爆发,易见股份直线封涨停
  18. HBuilder 代码缩放快捷键
  19. F4和L4的一个区别 (CCM)
  20. 网络协议——网络架构

热门文章

  1. Leetcode题解 二分查找
  2. 论文笔记:Revisiting Temporal Modeling for Video Super-resolution(重新审视视频超分辨率的时间建模) Part1 系咁嘅啦
  3. 使用环信sdk做一个简单的聊天APP
  4. 仿造虎扑步行街首页。
  5. springmvc配置thymeleaf视图解析器
  6. JAVA基础-Object类(简单说明),String类,.equals()方法
  7. Java中instanceof关键字的用法
  8. 计算机建立excel文件,我的电脑不能新建excel!电脑excle无法使用
  9. 使用WEX5移动开发工具制作仿淘宝APP
  10. SpringCloud学习笔记(八)Gateway 网关