主要使用到了给元素添加监听事件的方法
addEventListener 和 传统的添加事件方法区别在于 前者可以在同一个元素添加多个监听事件
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="UTF-8">
<title>表格操作</title>
<style>
table,tr,td{
border: 1px solid grey;
text-align: center;
border-collapse: collapse;
}
thead{background-color: lightseagreen;}
tr td:nth-of-type(2){width: 300px;}
tr td:nth-of-type(3){width: 100px;}
tr td:nth-of-type(4){width: 100px;}
</style>
</head>
<body>
<table id="wrap">
<caption>表格标题</caption>
<thead>
<tr>
<td><input type="checkbox" id="all"></td>
<td>产品名称</td>
<td>***价格</td>
<td>操作方式</td>
</tr>
</thead>
<tbody>
<tr>
<td><input type="checkbox" name="user-select"></td>
<td>mac book pro 15.5</td>
<td>19000</td>
<td><button name="btn">编辑</button><button name="btnl">删除</button></td>
</tr>
<tr>
<td><input type="checkbox" name="user-select"></td>
<td>huawei book pro 全面屏</td>
<td>8800</td>
<td><button name="btn">编辑</button><button name="btnl">删除</button></td>
</tr>
<tr>
<td><input type="checkbox" name="user-select"></td>
<td>小米游戏本pro 15.6</td>
<td>8999</td>
<td><button name="btn">编辑</button><button name="btnl">删除</button></td>
</tr>
<tr>
<td><input type="checkbox" name="user-select"></td>
<td>Thankpad xx**</td>
<td>9500</td>
<td><button name="btn">编辑</button><button name="btnl">删除</button></td>
</tr>
</tbody>
</table>
<button id="del-all" disabled>全部删除</button>
<script>
// 获取表格
var table = document.getElementById('wrap');
// 获取全选按钮
var all = document.getElementById('all');
// 获取每行的复选框
var userSelect = document.getElementsByName('user-select');
// 获取全部删除按钮
var delall = document.getElementById('del-all');
// 获取单行删除按钮
var btnl = document.getElementsByName('btnl');
// 获取单行编辑按钮
var btn = document.getElementsByName('btn');
all.addEventListener('input',function () {
if (all.checked === true){
// 判断表格内是否有行 如没有 全选复选框不让选
if (userSelect.length === 0){
all.checked = false;
}
// 第一种执行方式
// Object.keys(userSelect).forEach(function (value) {
// console.log(userSelect[value]);
// userSelect[value].checked = true;
// });
// 第二种执行方式
userSelect.forEach(function (value) {
// console.log(value);
value.checked = true;
});
// 设置全部删除按钮为可点击状态
delall.disabled = false;
} else {
// 第一种执行方式
// Object.keys(userSelect).forEach(function (value) {
// console.log(userSelect[value]);
// userSelect[value].checked = false;
// });
// 第二种执行方式
userSelect.forEach(function (value) {
// console.log(value);
value.checked = false;
});
// 设置全部删除按钮为禁止状态
delall.disabled = true;
}
},false);
// 全部删除按钮事件
delall.addEventListener('click',function () {
table.tBodies[0].innerHTML = null;
delall.disabled = true;
all.checked = false;
},false);
// 操作方式 单行操作 删除
Object.keys(btnl).forEach(function (value) {
// console.log(value);
btnl[value].addEventListener('click',function () {
this.parentNode.parentElement.remove();
prompt('请输入需要修改的内容');
},false);
});
// 操作方式 单行操作 编辑
Object.keys(btn).forEach(function (value) {
btn[value].addEventListener('click',function () {
var input = prompt('请输入需要修改的内容');
if (input !== null){
if (input.length !== 0){
this.parentNode.parentElement.children[1].innerHTML = input;
}
}
},false);
});
</script>
</body>
</html>点击 "运行实例" 按钮查看在线实例
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号