全选反选的逻辑和代码
布局上大体是这个样子
<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")}})
全选反选的逻辑和代码相关推荐
- 用js创建表格及全选反选
用js创建表格及全选反选 用js代码来实现创建表格,及全选反选,代码效果图如下: <!DOCTYPE html> <html lang="en"><h ...
- JSjQuery全选反选父项子项联动多选框
全选反选父项子项联动多选框 js代码:<!DOCTYPE html><html lang="en"><head> <meta charse ...
- android 批量查找view,Android Recyclerview实现多选,单选,全选,反选,批量删除的功能
效果图如下: recyclerview 实现多选,单选,全选,反选,批量删除的步骤 1.在recyclerview布局中添加上底部的全选和反选按钮,删除按钮,和计算数量等控件 2.这里选中的控件没有用 ...
- 【HTML5】页面点击按钮添加一行 删除一行 全选 反选 全不选
页面点击按钮添加一行 删除一行 全选 反选 全不选 页面效果图如下 html页面代码 <!DOCTYPE html> <html><head>< ...
- JQuery全选反选 随其他checkbox自动勾选全选反选
工作中的代码片段 写出来留作以后对比参考 网上没找到自己想要的全选反选代码 干脆自己写了个比较臃肿的 相信还有更加简单的方法 jquery代码 ============================ ...
- 关于JQuery全选/反选第二次失效的问题
最近在项目中,遇到一个问题,测试全选/反选功能时,第一次对母框进行选中/非选中时,能同步子框的全选/反选状态,之后再点击母框,子框就没反应了.原代码大致结构关键如下: function selectA ...
- android 全选功能,Android Recyclerview实现多选,单选,全选,反选,批量删除的功能
效果图如下: Recyclerview 实现多选,单选,全选,反选,批量删除的步骤 1.在Recyclerview布局中添加上底部的全选和反选按钮,删除按钮,和计算数量等控件 2.这里选中的控件没有用 ...
- html dom反选,Dom操作--全选反选
我们经常会在网站上遇到一些多选的情况,下面我就来说说使用Dom写全选反选的思路. 全选思路: 首先,我们来分析一下知道,当我们点击"全选"复选框的时候,所有的复选框应该都被选中,那 ...
- java做全选反选功能_[Java教程]js实现全选反选
[Java教程]js实现全选反选 0 2017-04-04 00:00:12 在前端中用到全选反选的案例并不少,在这里呢我就实现这个功能给大家参考参考. 这里呢就先贴上我的html和css代码 快递 ...
最新文章
- 95%粉丝失联,小编感觉像失恋?
- 日期DatePicker与时间TimePicker控件
- HTTP缓存原理介绍
- Spring 嵌套方法AOP不生效问题
- MVVM模式的3种command总结[2]--RelayCommand
- 作业帮电脑版在线使用_互助作业帮PC版-互助作业帮电脑版下载 v4.5.8
- 【HihoCoder - 1831】80 Days(尺取 或 线段树)
- 这轮AI才刚刚启动,就开始有人谈AI泡沫了?
- tcpserver检测断开qt_QTcpServer或QTcpClient(在服务器端)知道,已连接的客户端现已断开连接...
- (29)Spring boot 文件上传(多文件上传)【从零开始学Spring Boot】
- 如何生成白底一寸照?怎么制作白底证件照?
- 微信JS接口安全域名设置不成功,提示没有找到文件
- 服务器无线桥接怎么设置,高科路由器怎么设置无线中继 | 192路由网
- 张宏系列又又双叒叕售罄了
- Python处理Windows记事本utf8编码文件要注意的坑
- 向量组相关定理及其推论
- 1分钟链圈 | 告急告急!区块链人才极度稀缺,需求三年爆增19倍;区块链板块早盘爆发,易见股份直线封涨停
- HBuilder 代码缩放快捷键
- F4和L4的一个区别 (CCM)
- 网络协议——网络架构
热门文章
- Leetcode题解 二分查找
- 论文笔记:Revisiting Temporal Modeling for Video Super-resolution(重新审视视频超分辨率的时间建模) Part1 系咁嘅啦
- 使用环信sdk做一个简单的聊天APP
- 仿造虎扑步行街首页。
- springmvc配置thymeleaf视图解析器
- JAVA基础-Object类(简单说明),String类,.equals()方法
- Java中instanceof关键字的用法
- 计算机建立excel文件,我的电脑不能新建excel!电脑excle无法使用
- 使用WEX5移动开发工具制作仿淘宝APP
- SpringCloud学习笔记(八)Gateway 网关