1 效果图

2 html

<div class="main">
<table>
<tr>
<th><input type="checkbox" id="checkAll" name="checkAll"/><label>全选</label><label>
<a href="#" id="checkNo">反选</a>
</label></th>
</tr>
<tr>
<td><input type="checkbox" name="item" /><label>选项1</label></td>
</tr>
<tr>
<td><input type="checkbox" name="item" /><label>选项2</label></td>
</tr>
<tr>
<td><input type="checkbox" name="item" /><label>选项3</label></td>
</tr>
<tr>
<td><input type="checkbox" name="item" /><label>选项4</label></td>
</tr>
<tr>
<td><input type="checkbox" name="item" /><label>选项5</label></td>
</tr><tr>
<td><input type="checkbox" name="item" /><label>选项6</label></td>
</tr>
</table>
</div>

3 css

.main{
height:200px;
background-color:#CDCDC1;
font-size:15px;
font-family:"微软雅黑";
}

4 jq

$(document).ready(function(){
//判断子元素是否全选
var length = $("input[name='item']").length;
function isCheckAll(){
var count = 0;
for(let i =0;i<length;i++){
if($("input[name='item']").eq(i).prop('checked')){
count++;
}
}
if(count == length){$("input[name='checkAll']").eq(0).prop('checked',true);}else{
$("input[name='checkAll']").eq(0).prop('checked',false);
}
}
//全选
$("input[name='checkAll']").click(function(){
var _this_ = $(this);
$("input[name='item']").prop('checked',_this_.prop('checked'));
})
//反选
$("#checkNo").click(function(){
$("input[name='item']").each(function(){
$(this).prop('checked',!$(this).prop('checked'));
});
isCheckAll();
})
//为每一个选项绑定一个判断全选le
for(let i=0;i<length;i++){
$("input[name='item']").eq(i).click(function(){
isCheckAll();
})
}
});

5 总结

.prop(); //可以用来获取属性值,也可以用来设置属性值,与.attr()类似

.each();//为选中的对象集合的元素遍历一遍处理函数

.length;//获取选中对象的个数

6 补充 js实现  2019/10/16,思路不变,只是用原生的js实现

window.onload = function(){
var oCheckAll = document.getElementsByName('checkAll');
var oCheckNo = document.getElementById('checkNo');
var oItem = document.getElementsByName('item');
var length = oItem.length;
console.log(length);
console.log(oItem);
function isCheckedAll(){
let count = 0;
for(let i =0;i<length;i++){
if(oItem[i].checked == true){
count++;
}
}
if(count == length){
oCheckAll[0].checked = true ;
}else{
oCheckAll[0].checked = false ;
}
}
oCheckAll[0].onclick = function(){
console.log(1);
for(let i=0;i<length;i++){
oItem[i].checked = true;
}
}
oCheckNo.onclick = function(){
console.log(2);
for(let i=0;i<length;i++){
var flag = oItem[i].checked;
oItem[i].checked = !flag;
}
isCheckedAll()
}
for(let i =0;i<length;i++){
oItem[i].onclick = function(){
isCheckedAll();
}
} }

最新文章

  1. 相机标定:Matlab标定工具箱使用要点
  2. android中实现跑马灯效果以及AutoCompleteTestView与MultiAutoCompleteTextView的学习
  3. CSS3学习
  4. UVa 11137 (完全背包方案数) Ingenuous Cubrency
  5. jqure获取单选按钮的值(比如性别)
  6. js 设置 获取css样式
  7. office2010怎么激活
  8. jQuery解析JSON的问题
  9. em与px的区别 [ 转 ]
  10. 【分割平面,分割空间类题】【HDU1290 HDU2050】
  11. Android中如何查看内存(下)
  12. Python打包分发工具setuptools
  13. mysql进阶(二十三)数据库事务四大特性
  14. Flask的Windows部署:mod_wsgi + Apache
  15. virtualenv的使用
  16. C# 6.0:nameof操作符
  17. C&amp;C++动态分配内存(手动分配内存)三种方式
  18. node.js中net网络模块TCP服务端与客户端的使用
  19. mysql 5.6 binlog组提交实现原理(转载)
  20. MyBatis对于Java对象里的枚举类型处理

热门文章

  1. SpringBootSecurity学习(21)前后端分离版之OAuth2.0非对称加密
  2. selenium+testNG自动化测试框架搭建
  3. meta标签中设置以极速模式打开网页
  4. redis缓存+session 实现单点登录
  5. 微信小程序发起请求
  6. java中的静态
  7. 使用canvas生成含有微信头像的邀请海报没有微信头像
  8. js转换页面为图片并下载
  9. NOIP2018货币系统
  10. 2019.10.29 CSP%您赛第四场t2