<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
* {
padding: 0;
margin: 0;
}
.wrap {
width: 300px;
margin: 100px auto 0;
}
table {
border-collapse: collapse;
border-spacing: 0;
border: 1px solid #c0c0c0;
width: 300px;
}
th,
td {
border: 1px solid #d0d0d0;
color: #404060;
padding: 10px;
}
th {
background-color: #09c;
font: bold 16px "微软雅黑";
color: #fff;
}
td {
font: 14px "微软雅黑";
}
tbody tr {
background-color: #f0f0f0;
}
tbody tr:hover {
cursor: pointer;
background-color: #fafafa;
}
</style>
</head>
<body>
<div class="wrap">
<table>
<thead>
<tr>
<th>
<input type="checkbox" id="j_cbAll" />
</th>
<th>商品</th>
<th>价钱</th>
</tr>
</thead>
<tbody id="j_tb">
<tr>
<td>
<input type="checkbox" />
</td>
<td>iPhone12 Pro</td>
<td>8499</td>
</tr>
<tr>
<td>
<input type="checkbox" />
</td>
<td>iPhone12 Pro Max</td>
<td>9299</td>
</tr>
<tr>
<td>
<input type="checkbox" />
</td>
<td>ipad Pro</td>
<td>6499</td>
</tr>
<tr>
<td>
<input type="checkbox" />
</td>
<td>ipad Air</td>
<td>4799</td>
</tr>
</tbody>
</table>
</div>
<script>
// 1.获取元素
var j_cbAll = document.getElementById('j_cbAll');
var j_tb = document.getElementById('j_tb').querySelectorAll('input');
j_cbAll.onclick = function () {
// 、需要得到 当前全选按钮的一个选中状态 选中状态是由 checked属性值来决定的
// console.log(this.checked);
for (var i = 0; i < j_tb.length; i++) {
j_tb[i].checked = this.checked;
}
}
//循环给每一个小复选框注册点击事件
for (var i = 0; i < j_tb.length; i++) {
j_tb[i].onclick = function () {
//复选框勾选上默认的就是true
var flag = true;
//循环检测四个小复选框
for (var i = 0; i < j_tb.length; i++) {
//如果j_tb[i]的值不等于checked,也就是等于没有勾选上,那么就不会执行下面的 j_cbAll.checked = flag;这一行代码,如果只勾选一个或者两个也是满足if条件的,则不会执行下面代码,如果都勾选了。那么if条件就不执行,则满足下面执行条件。
if (!j_tb[i].checked) {
flag = flase;
break;
}
}
j_cbAll.checked = flag;
}
}
</script>
</body>
</html>
JS API 表格里面复选框全选或者取消的应用
最新推荐文章于 2024-02-11 13:29:08 发布