JavaScript案例之全选影响小选案例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
* {
margin: 0;
padding: 0;
}
table {
width: 600px;
border-collapse: collapse;
border-spacing: 0;
margin: 100px auto;
text-align: center;
}
table th {
font-size: large;
height: 24px;
}
td {
border: 2px solid #000;
padding: 10px;
}
</style>
</head>
<body>
<table>
<tr>
<th><input type="checkbox" name="" id="checkAll"><span class="all">全选</span></th>
<th>商品</th>
<th>商家</th>
<th>价格</th>
</tr>
<tr>
<td><input type="checkbox" name="checkbox" class="ck"></td>
<td>华为手机</td>
<td>华为</td>
<td>¥3999</td>
</tr>
<tr>
<td><input type="checkbox" name="checkbox" class="ck"></td>
<td>小米手机</td>
<td>小米</td>
<td>¥4999</td>
</tr>
<tr>
<td><input type="checkbox" name="checkbox" class="ck"></td>
<td>苹果手机</td>
<td>苹果</td>
<td>¥9999</td>
</tr>
</table>
<script>
const checkAll = document.querySelector('#checkAll')
const cks = document.querySelectorAll('.ck')
checkAll.addEventListener('click', function () {
for (let i = 0; i < cks.length; i++) {
cks[i].checked = this.checked
}
})
for (let i = 0; i < cks.length; i++) {
cks[i].addEventListener('click', function () {
let flag = document.querySelectorAll('.ck:checked').length === cks.length
checkAll.checked = flag
})
}
</script>
</body>
</html>