javascript => insertRow insertCell deleteRow rowIndex 用法

本文介绍了一种使用JavaScript来实现HTML表格的动态增删行的方法。通过insertRow(i)和deleteRow(i)方法,可以轻松地在指定位置添加或删除表格行。此外,还提供了具体的示例代码帮助理解。

 

insertRow(i) :方法可用来往表格中的指定位置上插入新行 

      把新行插入表格第i 行之上 i从0开始计算 (表格的第一行 为第0行) 如果i等于表格总行数 则插入最后一行

insertCell(i):在行中插入1列  方法同 insertRow(i)

deleteRow(i) :删除 表格中的第i行 i从0开始算起

rowIndex : 返回某一行在表格中行集合的位置

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>动态生成表格</title> <style> table { border-collapse: collapse; width: 100%; } table, th, td { border: 1px solid black; } </style> </head> <body> <form> <label for="name">请输入姓名:</label> <input type="text" id="name" name="name" required><br> <label for="email">请输入邮箱:</label> <input type="email" id="email" name="email" required><br> <input type="button" value="添加" onclick="addRow()"> </form> <table id="studentTable"> <thead> <tr> <th>姓名</th> <th>邮箱</th> <th>操作</th> </tr> </thead> <tbody> </tbody> </table> <script> function addRow() { // 获取输入框的值 let name = document.getElementById('name').value; let email = document.getElementById('email').value; // 获取表格的tbody元素 let tableBody = document.getElementById('studentTable').getElementsByTagName('tbody')[0]; // 创建新的行 let newRow = tableBody.insertRow(); // 创建姓名单元格并填充内容 let nameCell = newRow.insertCell(0); nameCell.textContent = name; // 创建邮箱单元格并填充内容 let emailCell = newRow.insertCell(1); emailCell.textContent = email; // 创建操作单元格并添加删除链接 let actionCell = newRow.insertCell(2); let deleteLink = document.createElement('a'); deleteLink.href = "#"; deleteLink.textContent = "删除"; // 使用箭头函数确保正确的作用域,获取当前行索引并删除行 deleteLink.addEventListener('click', (e) => { e.preventDefault(); // 阻止默认的跳转行为 let rowIndex = newRow.rowIndex; tableBody.deleteRow(rowIndex); }); actionCell.appendChild(deleteLink); // 清空输入框 document.getElementById('name').value = ''; document.getElementById('email').value = ''; } </script> </body> </html> 这个代码的删除点击无法删除该行索引对应的数据,帮我改一下,给我一个整的html代码
05-14
改错,不改变源代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>添加联系人</title> </head> <style> h3{ text-align: center; } table,form{ width: 400px; margin: 0 auto; } table,th,td{ border: 1px solid gray; border-collapse: collapse; } </style> <body> <h3>联系人表格</h3> <table> <tr> <th>姓名</th> <th>联系地址</th> <th>邮政编码</th> <th>操作</th> </tr> <tr> <td>王小品</td> <td>商学院</td> <td>110104</td> <td><button>删除</button></td> </tr> </table> <hr> <form action=""> <p> <label for="username">姓名:</label> <input type="text" id="username"> </p> <p> <label for="address">联系地址:</label> <input type="text" id="address"> </p> <p> <label for="postcode">邮政编码:</label> <input type="text" id="postcode"> </p> <p> <input type="button" id="btn" value="添加联系人"> <input type="reset" value="重置"> </p> </form> <script> document.getElementById("btn").onclick=function(){ var username=document.getElementById("username").value; var address=document.getElementById("address").value; var postcode=document.getElementById("postcode").value; var table=document.querySelector("table"); var tr=table.insertRow(); tr.insertCell(0).textContent=username; tr.insertCell(1).textContent=address; tr.insertCell(2).textContent=postcode; var mybutton=document.createElement("button"); mybutton.className="del"; mybutton.innerHTML="删除"; tr.insertCell(3).appendChild(mybutton); mybutton.onclick=function(){ table.deleteRow() } } </script> </body> </html>
11-29
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值