js实现动态添加删除表格方法
AI 概述
效果:
1、 点击添加按钮 往 table 中添加一行 将全选前面的复选框变成 false;
1.1 、当前新增的复选框加上点击事件。
2、 点击删除按钮 获取表格体中被选中的行,删除整个tr,将全选前面的复选框变成 false,
获取的是第一个 td 中的checkbox的状态 checked为 true 2 层父子。
3 、点击全选按钮前面的复选框 如果被...
效果:
1、 点击添加按钮 往 table 中添加一行 将全选前面的复选框变成 false;
- 1.1 、当前新增的复选框加上点击事件。

2、 点击删除按钮 获取表格体中被选中的行,删除整个tr,将全选前面的复选框变成 false,
获取的是第一个 td 中的checkbox的状态 checked为 true 2 层父子。

3 、点击全选按钮前面的复选框 如果被选中 下面的每一个复选框都被选中 如果不被选中 下面的每一个复选框都不被选中。

4、 点击每一个表格体中的复选框, 如果所有的复选框都被选中, 全选按钮就是被选中, 如果有一个没有被选中, 全选按钮就是不选中状态。

源码如下
HTML 代码:
<div class="head">
<span>请输入姓名 :</span><input type="text"><br>
<span>请输入性别 :</span><input type="radio" name="sex" checked>男<input type="radio" name="sex">女<br>
<span>请输入年龄 :</span><input type="text"><button>添加到表格</button>
</div>
<table>
<thead>
<th><input type="checkbox"> 全选</th>
<th>姓名</th>
<th>性别</th>
<th>年龄</th>
</thead>
<tbody>
<tr class="tr1">
<td><input type="checkbox"></td>
<td>张三</td>
<td>女</td>
<td>88</td>
</tr>
<tr>
<td><input type="checkbox"></td>
<td>李四</td>
<td>男</td>
<td>18</td>
</tr>
<tr>
<td><input type="checkbox"></td>
<td>王五</td>
<td>女</td>
<td>12</td>
</tr>
</tbody>
</table>
<div class="foot"><button>删除所选行</button></div>
CSS 代码:
.head {
width: 500px;
padding: 8px;
margin: 20px auto;
box-sizing: border-box;
border: 1px solid #eee;
}
input {
margin-left: 3px;
outline: none;
}
button {
float: right;
}
table {
width: 500px;
border: 1px solid #000;
margin: 0 auto;
border-collapse: collapse;
}
tr, td, th {
border: 1px solid #000;
}
tr td:nth-child(1) {
text-align: center;
}
.foot {
width: 500px;
margin: 8px auto;
padding: 8px;
box-sizing: border-box;
}
.foot button {
float: right;
}
td:nth-child(2),
td:nth-child(3),
td:nth-child(4) {
width: 20%;
}
JavaScript 代码:
// 事件三部曲
// 1. 获取元素 按钮 table tBody 复选框 inp
var btns = document.querySelectorAll('button');
var table = document.querySelector('table');
var inps = document.querySelectorAll('input');
var all = table.tHead.querySelector('input');
var cks = table.tBodies[0].getElementsByTagName('input');
var cks1 = table.tBodies[0].querySelectorAll('input');
// console.log(btns, table, inps, cks);
// console.log(cks, all);
console.log(cks, cks1);
// 2. 点击添加按钮
btns[0].onclick = function() {
// 3. 往 table 中添加一行
var tr = document.createElement('tr');
// 4. tr 加到 tbody
table.tBodies[0].appendChild(tr);
// 5. 创建 td
var inp = document.createElement('td');
inp.innerHTML = '<input type="checkbox">';
tr.appendChild(inp);
var user = document.createElement('td');
user.innerHTML = inps[0].value;
tr.appendChild(user);
var sex = document.createElement('td');
sex.innerHTML = inps[1].checked ? '男': '女';
tr.appendChild(sex);
var age = document.createElement('td');
age.innerHTML = inps[3].value;
tr.appendChild(age);
// 6. 全选前面的复选框变成 false
all.checked = false;
// 当前新增的复选框加上点击事件
var bck = tr.querySelector('input');
console.log(bck);
bck.onclick = function() {
auto();
}
}
// 7. 点击删除按钮 删除所选中的行
btns[1].onclick = function() {
// 8. 获取表格体中被选中的行
// console.log(cks, cks1);
// 9. 判断复选框是否被选中
for (var i = 0; i < cks.length; i++) {
console.log(cks);
if (cks[i].checked) {
// console.log(cks[i].parentNode.parentNode);
// console.log(cks);
// 10. 删除整行
cks[i].parentNode.parentNode.remove();
i--;
}
}
// 11. 将全选前面的复选框变成 false
all.checked = false;
}
// 点击全选按钮前面的复选框 如果被选中 下面的每一个复选框都被选中 如果不被选中 下面的每一个复选框都不被选中
// 12. 点击 all
all.onclick = function() {
console.log(all.checked);
// 13. 每一个
for (var i = 0; i < cks.length; i++) {
cks[i].checked = all.checked;
}
}
// 点击每一个表格体中的复选框, 如果所有的复选框都被选中, 全选按钮就是被选中, 如果有一个没有被选中, 全选按钮就是不选中状态
for (var j = 0; j < cks.length; j++) {
// 点击
cks[j].onclick = function() {
// 所有的
// for(var i = 0; i < cks.length; i++){
// console.log(cks[i].checked);
// // 如果有一个没有被选中, 全选按钮就是不选中状态
// if(cks[i].checked == false){
// // 全选按钮就是不选中
// all.checked = false;
// // 结束整个函数
// return;
// }
// }
// // 所有的都被选中
// all.checked = true;
auto();
}
}
function auto() {
// 所有的
for (var i = 0; i < cks.length; i++) {
console.log(cks[i].checked);
// 如果有一个没有被选中, 全选按钮就是不选中状态
if (cks[i].checked == false) {
// 全选按钮就是不选中
all.checked = false;
// 结束整个函数
return;
}
}
// 所有的都被选中
all.checked = true;
}
以上关于js实现动态添加删除表格方法的文章就介绍到这了,更多相关内容请搜索码云笔记以前的文章或继续浏览下面的相关文章,希望大家以后多多支持码云笔记。
声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » js实现动态添加删除表格方法
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » js实现动态添加删除表格方法

微信
支付宝