需求:
设置一个表格,可以满足全选,全不选,反选,以及点击第一个checkbox所有checkbox状态与之一样。同时满足鼠标移动到每一行,该行背景色改变,移出则背景色消除。
代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>表格全选</title>
<style>
table{
border: 1px solid;
width: 500px;
margin-left: 30%;
}
th,td{
border: 1px solid;
text-align: center;
}
div{
margin-top: 10px;
margin-left: 30%;
}
.out{
background-color: white;
}
.over{
background-color: chartreuse;
}
</style>
<script>
/*
分析:
1.全选:
获取所有的Checkbox
遍历cb,设置每一个cb状态为选中 checked
*/
//1.在页面加载完后绑定事件
window.onload = function () {
//2给全选按钮绑定单击事件
document.getElementById("selectAll").onclick = function () {
//全选
//1.获取所有的Checkbox
var cds = document.getElementsByName("cd");
//2.遍历cd,设置每一个cd的状态为选中 checked
for (var i = 0; i < cds.length; i++) {
//3.设置每一个cd的状态为选中 checked
cds[i].checked = true;
}
}
//全不选
document.getElementById("selectNo").onclick = function () {
//1.获取所有的Checkbox
var cds = document.getElementsByName("cd");
//2.遍历cd,设置每一个cd的状态为选中 unchecked
for (var i = 0; i < cds.length ; i++) {
cds[i].checked = false;
}
}
//反选
document.getElementById("selectRev").onclick = function () {
//1.获取所有的Checkbox
var cds = document.getElementsByName("cd");
//2.遍历cd
for (var i = 0; i < cds.length ; i++) {
//3.设置每一个cd的状态为相反
cds[i].checked = !cds[i].checked;
}
}
//第一个cd点击
document.getElementById("firstCd").onclick = function () {
//1.获取所有的cd
var cds = document.getElementsByName("cd");
//2.遍历cd
for (var i = 1; i < cds.length; i++) {
//3.设置每一个cd状态与第一个cd状态相同
//cds[i].checked = cds[0].checked;
//或者
cds[i].checked = this.checked;
}
}
//设置鼠标移到元素智商与移出元素事件,改变背景色
//1.获取所有tr
var trs = document.getElementsByTagName("tr");
//2.遍历
for (var i = 0; i < trs.length; i++) {
//移到元素之上
trs[i].onmouseover = function () {
this.className = "over";
}
//移出元素
trs[i].onmouseout = function () {
this.className = "out";
}
}
}
</script>
</head>
<body>
<table>
<caption>学生信息表</caption>
<tr>
<th><input type="checkbox" name="cd" id="firstCd"></th>
<th>编号</th>
<th>姓名</th>
<th>性别</th>
<th>操作</th>
</tr>
<tr>
<td><input type="checkbox" name="cd"></td>
<td>1</td>
<td>令狐冲</td>
<td>男</td>
<td><a href="#">删除</a></td>
</tr>
<tr>
<td><input type="checkbox" name="cd"></td>
<td>2</td>
<td>花城</td>
<td>男</td>
<td><a href="#">删除</a></td>
</tr>
<tr>
<td><input type="checkbox" name="cd"></td>
<td>3</td>
<td>谢怜</td>
<td>男</td>
<td><a href="#">删除</a></td>
</tr>
</table>
<div>
<input type="button" id="selectAll" value="全选" >
<input type="button" id="selectNo" value="全不选">
<input type="button" id="selectRev" value="反选">
</div>
</body>
</html>
结果演示: