为了账号安全,请及时绑定邮箱和手机立即绑定

节点问题.....

// 创建删除函数
     function del(obj){
         var tr=obj.parentNode.parentNode.parentNode;
         tr.removeChild(tr);
     }

为什么这样写不行

正在回答

3 回答

使用 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>


1 回复 有任何疑惑可以回复我~

粘贴代码的第 4 行,removeChild() 是删除子节点,你写的是 tr 删除 tr,即自己删除自己,该操作不可执行

改为如下代码即可:


function del(obj){

         var tr=obj.parentNode.parentNode.parentNode;

         tr.removeChild(tr.childNodes[0]);

}

0 回复 有任何疑惑可以回复我~
#1

Mr_Jp黎 提问者

变量tr是table节点,tr.childNodes[0]是指table的第一个子节点,会删错的呀。。。能不能用什么方法,获取当前的索引值,这样就完美了。。。
2017-07-08 回复 有任何疑惑可以回复我~
#2

油炸小香瓜3192649 回复 Mr_Jp黎 提问者

不能超过 300 字,醉了。不能贴代码
2017-07-11 回复 有任何疑惑可以回复我~
#3

Mr_Jp黎 提问者 回复 油炸小香瓜3192649

什么东西
2017-07-12 回复 有任何疑惑可以回复我~

obj所在的元素节点是td,td的父节点是tr,tr的父节点是table,要删除的是table下的子节点,所以。。

0 回复 有任何疑惑可以回复我~
#1

Mr_Jp黎 提问者

所以,我本来也是这么想的,后来好像知道了。。tr是个变量,我想table下删除tr,但是括号里是变量,并不是tr标签,所以还得获取到tr的节点
2017-07-08 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468196    人
  • 解答问题       21891    个

本课程从如何插入JS代码开始,带您进入网页动态交互世界

进入课程

节点问题.....

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信