做后台管理程序时,用到一个checkbox组的全选和取消全选的功能,

主要是逻辑上的坑,理清后大概是:

1.全选点击后,小弟1~4都要选上,点击取消,小弟们也要取消

2.只要有一个小弟取消时,全选要取消

3.当小弟都选上时,全选要选上

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>全选和取消全选</title>
</head>
<body>
<h2>管理员列表</h2>
<table border="1px" width="500px">
<thead>
<tr>
<th><input type="checkbox"/>全选</th>
<th>管理员ID</th>
<th>姓名</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tr>
<td><input type="checkbox"/>小弟1</td>
<td>1</td>
<td>Tester</td>
<td>修改 删除</td>
</tr>
<tr>
<td><input type="checkbox"/>小弟2</td>
<td>2</td>
<td>Manager</td>
<td>修改 删除</td>
</tr>
<tr>
<td><input type="checkbox"/>小弟3</td>
<td>3</td>
<td>Analyst</td>
<td>修改 删除</td>
</tr>
<tr>
<td><input type="checkbox"/>小弟4</td>
<td>4</td>
<td>Admin</td>
<td>修改 删除</td>
</tr>
</tbody>
</table>
<button>删除选定</button>
<script> //查找thead下第一个th下的input
var chbAll=document.querySelector(
"thead th:first-child>input"
);
//查找tbody中所有第一个td下的input
var chbs=document.querySelectorAll(
"tbody td:first-child>input"
);
//为chbAll绑定单击事件
chbAll.onclick=function(){
//遍历chbs中每个chb
for(var i=0;i<chbs.length;i++){
//设置当前chb的checked等于this的checked
chbs[i].checked=this.checked;
}
}
//为chbs中每chb都绑定单击事件
for(var i=0;i<chbs.length;i++){
chbs[i].onclick=function(){
if(!this.checked)
chbAll.checked=false;
else{
//选择tbody下第一个td中的未选中的input
var unchecked=
document.querySelector(
"tbody td:first-child>input:not(:checked)"
);
if(unchecked===null)
chbAll.checked=true;
}
}
}
</script>
</body>
</html>

最新文章

  1. Android开发学习之路-自定义控件(天气趋势折线图)
  2. 1全志 A20 camera移植
  3. JAVA里面的IO流(二)方法1、输入流
  4. json_encode详解,转义
  5. ES5基础01:正则表达式
  6. [ubuntu] ubuntu13.04安装rabbitcvs管理svn
  7. shell脚本中变量$$、$0等的含义
  8. Fuzzy test
  9. cdoj 1150 排名表 拓扑排序
  10. Android设计模式(1)----单例模式
  11. zookeeper选举代码分析
  12. 2015上海赛区B Binary Tree
  13. [LeetCode] Split BST 分割二叉搜索树
  14. #WEB安全基础 : HTTP协议 | 0x9 GET和POST请求以及请求URI的方式
  15. systemctl命令详解
  16. 第七篇 python基础之函数,递归,内置函数
  17. Winform中用comboBox来选择显示Dataset中表格数据
  18. Oracle EBS 键弹性域 段限定词取值
  19. P1075 质因数分解
  20. java.lang.ClassNotFoundException: com.sun.image.codec.jpeg.JPEGCodec

热门文章

  1. 113. Path Sum II(求等于某个数的所有路径)
  2. IO流参考
  3. Python3:读取配置dbconfig.ini(含有中文)显示乱码的解决方法
  4. 微信小程序快速开发
  5. C++中int转为char 以及int 转为string和string 转int和字符串的split
  6. TCP的握手与挥手
  7. hydra简单使用示例
  8. Java中List集合的常用方法
  9. segment fault本质
  10. IE6+以上清除浮动普遍方法总结