JavaScript学习——使用JS完成全选和全不选操作
2024-09-03 18:22:08
1、我们希望在后台系统实现一个批量删除的操作(全选所有的复选框)和全不选,显示效果如下:
2、步骤分析:
第一步:确定事件(onclick)并为其绑定一个函数(事件绑定到编号前面的复选框里面)
第二步:书写函数(获取编号前面的复选框,获取其状态)
获取编号前面的复选框的状态(是否选中)
获取复选框:var checkAllEle = document.getElementById(“id”)
获取复选框的状态:checkAllEle.checked?
第三步:判断编号前面复选框的状态(如果为选中,获取下面所有的复选框,并将其状态置为选中)
获取下面所有的复选框:
document.getElementsByName(“name”);
第四步:判断编号前面复选框的状态(如果为未选中,获取下面所有的复选框,并将其状态置为未选中)
3、具体代码实现:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>复选框的全选和全不选</title>
<script>
function checkAll(){
//1.获取编号前的复选框
var checkAllEle=document.getElementById("checkAll");
//2.对编号前面复选框的状态进行判断
if(checkAllEle.checked==true){
//3.获取下面所有的复选框
var checkOnes=document.getElementsByName("checkOne");
//4.对获取的所有复选框进行遍历
for(var i=0;i<checkOnes.length;i++){
//5.拿到每一个复选框,并将其状态视为选中
checkOnes[i].checked=true;
}
}else{
//6.获取下面所有的复选框
var checkOnes=document.getElementsByName("checkOne");
//7.对获取的所有复选框进行遍历
for(var i=0;i<checkOnes.length;i++){
//5.拿到每一个复选框,并将其状态视为未选中
checkOnes[i].checked=false;
}
}
}
</script>
</head>
<body>
<table border="1" width="500" height="50" align="center" >
<thead>
<tr>
<td colspan="4">
<input type="button" value="添加" />
<input type="button" value="删除" />
</td>
</tr>
<tr>
<th><input type="checkbox" onclick="checkAll()" id="checkAll"/></th>
<th>编号</th>
<th>姓名</th>
<th>年龄</th>
</tr>
</thead>
<tbody>
<tr >
<td><input type="checkbox" name="checkOne"/></td>
<td>1</td>
<td>张三</td>
<td>22</td>
</tr>
<tr >
<td><input type="checkbox" name="checkOne"/></td>
<td>2</td>
<td>李四</td>
<td>25</td>
</tr>
<tr >
<td><input type="checkbox" name="checkOne"/></td>
<td>3</td>
<td>王五</td>
<td>27</td>
</tr>
<tr >
<td><input type="checkbox" name="checkOne"/></td>
<td>4</td>
<td>赵六</td>
<td>29</td>
</tr>
<tr >
<td><input type="checkbox" name="checkOne"/></td>
<td>5</td>
<td>田七</td>
<td>30</td>
</tr>
<tr >
<td><input type="checkbox" name="checkOne"/></td>
<td>6</td>
<td>汾九</td>
<td>20</td>
</tr>
</tbody>
</table>
</body>
</html>
在谷歌浏览器内运行,实现的效果和需求一样,点击第一个复选框下面所有的复选框全部选中,取消第一个复选框下面所有的复选框全部取消。
最新文章
- Fibonacci(斐波那契)非递归实现。容易看懂
- NOIP2006能量项链[环形DP]
- mybatis执行批量更新batch update 的方法
- HTML 基础元素
- JS能力测评试题
- MySQL MyISAM/InnoDB高并发优化经验
- C# Http以文件的形式上传文件
- mysql 分析3使用分析sql 性能 show profiles ;
- 云计算--网络原理与应用--20171122--STP与HSRP
- 网站内容js设置 禁止复制,禁止选择
- jquery中对小数进行取整
- Keyboard Hook API函数 参数说明
- 博客主Judge已跳槽搬家emmm
- [转]如何将Angular localhost:4200 改为IP
- 第一个Sprint第一天
- 如何理解并正确使用MySql索引
- 8.13Oracle新建用户、角色,授权
- java基础——队列
- web04-LoginServlet
- 【Cf #503 B】The hat(二分)
热门文章
- Memcache相关面试题
- Zeplin(for Windows)无缝集成到了 Adobe XD
- 洛谷P3327 [SDOI2015]约数个数和(莫比乌斯反演)
- Safari new Date() 兼容问题
- hdu1542 矩形面积并(线段树+离散化+扫描线)
- 使用ECharts制作图形时,如何设置指定图形颜色?
- kernel zram feature
- Centos 6/7 忘记root密码处理方法
- BeanUtils(前端赋值给后台,忽略空属性)
- Java并发和多线程1:并发框架基本示例