Mr_Jp黎
2017-07-07 11:23
// 创建删除函数 function del(obj){ var tr=obj.parentNode.parentNode.parentNode; tr.removeChild(tr); }
为什么这样写不行
使用 this 获取当前点击的行即可,案例如下:
<!DOCTYPE HTML>
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<body>
<table>
<tr onclick="findIndex(this)">
<th>Month</th>
<th>Savings</th>
</tr>
<tr onclick="findIndex(this)">
<td>January</td>
<td>$100</td>
</tr>
<tr onclick="findIndex(this)">
<td>may</td>
<td>$1000</td>
</tr>
</table>
<script type="text/javascript">
// 获取当前点击的位置
function findIndex(obj){
var num;
var d = document.getElementsByTagName("tr");
for(i=0;i<d.length;i++){
if(d[i] === obj){
num = i;
}
}
console.log(num);
}
</script>
</html>
粘贴代码的第 4 行,removeChild() 是删除子节点,你写的是 tr 删除 tr,即自己删除自己,该操作不可执行
改为如下代码即可:
function del(obj){
var tr=obj.parentNode.parentNode.parentNode;
tr.removeChild(tr.childNodes[0]);
}
obj所在的元素节点是td,td的父节点是tr,tr的父节点是table,要删除的是table下的子节点,所以。。
JavaScript进阶篇
468195 学习 · 21891 问题
相似问题