删除一行数据功能有错,请修改 <body> <div> <table id="table"> <thead>学生信息表</thead> <tr> <td id="id">编号</td> <td id="tname">姓名</td> <td>性别</td> <td>操作</td> </tr> <tr> <td>1</td> <td>nxy</td> <td>女</td> <td> <a href="Javascript:void(0);" onclick="delTr()">删除</a> </td> </tr> </table> </div> <script> function delTr(obj) { var tr = obj.parentNode.parentNode; var table = tr.parentNode; document.getElementsByTagName("table")[0].removeChild(tr); } </script> </body>
时间: 2024-02-16 10:14:07 浏览: 25
在您提供的代码中,函数`delTr()`有一个参数`obj`,但是调用该函数时并没有传入参数,会导致程序出错。此外,通过`document.getElementsByTagName("table")[0]`获取的是第一个`table`元素,如果页面中存在多个`table`元素,可能会删除错误的行数据。建议您修改代码如下:
```html
<body>
<div>
<table id="table">
<thead>学生信息表</thead>
<tr>
<td id="id">编号</td>
<td id="tname">姓名</td>
<td>性别</td>
<td>操作</td>
</tr>
<tr>
<td>1</td>
<td>nxy</td>
<td>女</td>
<td>
<a href="javascript:;" onclick="delTr(this)">删除</a>
</td>
</tr>
</table>
</div>
<script>
function delTr(obj) {
var tr = obj.parentNode.parentNode;
var table = tr.parentNode;
table.removeChild(tr);
}
</script>
</body>
```
在修改后的代码中,删除链接的`onclick`事件中传入了`this`关键字,即当前点击的链接元素,函数`delTr()`中通过`obj`参数获取需要删除的行数据。而在删除行数据时,使用`table.removeChild(tr)`方法,直接从父节点中删除该行元素。