checkbox 全选,反选 ,全不选
在表格或者列表中经常会遇到要全选或者反选等交互,今天总结了一下代码,保留着以后直接拿来用
原理:
1. 全选:当全选checkbox被点击(不管点击之前是什么状态)后,获取其checked状态。然后对列表进行循环检测,此时可以将所有的(无论之前什么状态),设为选中,也可对未选中的进行选中。
2. 反选:当反选checkbox被点击(不管点击之前是什么装填)后,获取其其状态值,对列表进行循环检测,将被检测的元素的checked状态反向处理,即可。
3. 列表全选或者不全选:当列表中的任意一个checkbox被点击,侧应该对列表中的所有checkbox进行循环检测,如果此时全部选中,则应将全选checked选中,如果有至少一个没被选中,则应将全选checkbox取消选中。
代码实现:
为了测试代码的正确性,建立如下的HTML文档:
<!DOCTYPE html>
<html>
<head>
<title>checkbox测试</title>
</head>
<body>
<table>
<tr>
<td><input type="checkbox" id="allChecked"><span>全选</span></td>
<td><input type="checkbox" id="antiChecked"><span>全选</span></td>
</tr>
<tr>
<td><input type="checkbox" class="sonChecked"></td>
<td>1</td>
</tr>
<tr>
<td><input type="checkbox" class="sonChecked"></td>
<td>2</td>
</tr>
<tr>
<td><input type="checkbox" class="sonChecked"></td>
<td>3</td>
</tr>
</tr>
<td><input type="checkbox" class="sonChecked"></td>
<td>4</td>
</tr>
<tr>
<td><input type="checkbox" class="sonChecked"></td>
<td>5</td>
</tr>
</table>
</body>
</html>
//全选(id="allChecked") 反选(id="antiChecked") 选项列表(class="sonChecked") 选择使用id,class, name等属性作为选择器都可以,根据自己的文档来确定。
//javascript代码(原生的)
//条件检测,兼容性
if(!document.getElementById) return;
var allCheck = document.getElementById('allChecked');
var antiCheck = document.getElementById('antiChecked');
//条件检测,兼容性
if(!document.getElementsByClassName) return;
var sonChecks = document.getElementsByClassName('sonChecked');
//全选操作
allCheck.click = function(){
var allCheckState = allCheck.checked;
for(var i = 0;i<listChecks.length; i++){
if(listChecks[i].checked!=allCheckState){
listChecks[i].click();
}
}
}
//反选操作
antiCheck.click= function(){
for(var i = 0;i<listChecks.length;i++){
listChecks[i].click();
}
}
//列表项行为
for(var i = 0;i<listChecks.length;i++){
listChecks[i].click= function(){
for(var i=0;i<listChecks.length;i++){
if(!listChecks[i].checked){
allCheck.checked = false;
return;
}
}
allCheck.checked = true;
}
}
//也可以将这几个方法直接封装成函数,然后传入参数,直接调用,但如果是这样的话不建议在HTML里面使用 onchange="function(A,B)"之类的,应该将javascript与HTML分离。
checkbox 全选,反选 ,全不选的更多相关文章
- 表单javascript checkbox全选 反选 全不选
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...
- 【HTML5】页面点击按钮添加一行 删除一行 全选 反选 全不选
页面点击按钮添加一行 删除一行 全选 反选 全不选 页面效果图如下 html页面代码 <!DOCTYPE html> <html> <head> & ...
- 表单Checkbox全选反选全不选
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- checkbook全选/反选/全不选
<!doctype html><html lang="en"><head> <meta charset="UTF-8" ...
- vue实现单选多选反选全选全不选
单选 当我们用v-for渲染一组数据的时候,我们可以带上index以便区分他们我们这里利用这个index来简单地实现单选 <li v-for="(item,index) in radi ...
- WPF DataGrid CheckBox 多选 反选 全选
效果图 实现此效果的必要关键是 Style+DataTemplate 关键代码: <Window.Resources> <DataTemplate x:Key="Check ...
- html js 全选 反选 全不选源代码
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
- js实现全选,反选,全不选
思路:1.获取元素.2.用for循环历遍数组,把checkbox的checked设置为true即实现全选,把checkbox的checked设置为false即实现不选.3.通过if判断,如果check ...
- jquery、js操作checkbox全选反选
全选反选checkbox在实际应用中比较常见,本文有个不错的示例,大家可以参考下 操作checkbox,全选反选//全选 function checkAll() { $('input[name=&qu ...
- jquery、js全选反选checkbox
操作checkbox,全选反选 //全选 function checkAll() { $('input[name="TheID"]').attr("checked&quo ...
随机推荐
- js基础的知识整理
一.操作样式: .style 操作行间样式 .className 修改class 二.操作属性 1. . 更简单,操作已有的属性 2. [] 更灵活,点能做的,方括号都能做.方括号中放的是字符串 ...
- AOJ 0121: Seven Puzzle (BFS DP STL 逆向推理)(转载)
转载自: http://m.blog.csdn.net/blog/Enjoying_Science/42008801 题目链接:http://acm.hust.edu.cn/vjudge/probl ...
- InputStream,BufferedImage与byte数组之间的转换
需要获取网络的一张图片,但是某种需要,要把获取的这段流输入换为BufferedImage流,有的地方还需要转换为byte[]. 获得图片地址,获得了一个图片输入流,例如: Url img = n ...
- CSS3之尖角标签
如图所示,Tag标签的制作通常使用背景图片,现在用CSS3代码就能实现尖角效果(需浏览器支持CSS3属性). 运用CSS3样式实现尖角标签,只需要写简单的HTML结构和CSS样式. <p> ...
- HDU-4528 小明系列故事——捉迷藏 BFS模拟
题意:链接 分析:每一个D或者是E点往四面延伸,并且赋一个特殊的值,能看到D点的点赋值为1,能看到E点的点赋值为1000,这是因为最多100步,因此最后可以根据除以1000和对1000取模来得出某个状 ...
- CSSOM之getComputedStyle,currentStyle,getPropertyValue,getAttribute
js关于CSSOM编程的样式相关几个常用的方法 webkit:getComputedStyle,getPropertyValue IE:currentStyle,getAttribute 前言 jqu ...
- Pycharm使用问题# 内部Terminal
1.Windows XP并不支持内部Terminal
- 做个这样的APP要多久?[转]
这是一个“如有雷同,纯属巧合”的故事,外加一些废话,大家请勿对号入座.开始了…… 我有些尴尬地拿着水杯,正对面坐着来访的王总,他是在别处打拼的人,这几年据说收获颇丰,见移动互联网如火如荼,自然也想着要 ...
- td元素
一.设置td的宽和高,不设置table的宽和高 1. 当td的值为具体数值时 a. td显示的宽按设置的数值变动,但宽度不会大于父元素:若强行将宽设置的大于父元素的宽,会被系统无视,即最大宽度为父元素 ...
- HTML 文本格式化<b><big><em><i><small><strong><sub><sup><ins><del>
<b> 标签-粗体 定义和用法: <b>标签规定粗体文本. 提示和注释 注释:根据 HTML5 规范,在没有其他合适标签更合适时,才应该把 <b> 标签作为最后的选 ...