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

var tr = obj.parentNode.parentNode; tr.parentNode.removeChild(tr);是什么意思?

我不明白代码里面的var tr = obj.parentNode.parentNode; tr.parentNode.removeChild(tr);是什么意思?obj的父节点的父节点不就是table标签了么,table标签的父节点是body,tr.parentNode.removeChild(tr);不就是等于body.removeChild(tr);了么?可要删除的tr标签,是在table标签下啊。

正在回答

7 回答

第一个问题:  tr.parentNode.removeChild(tr);这个就是获取tr的父元素然后删除tr元素

tabale的子节点结构是text和tbody,而tr在tbody中,td则在tr中

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

LittleBoy 提问者

非常感谢!
2015-12-17 回复 有任何疑惑可以回复我~
#2

爱拉舞imooc

你好,关于这个程序,里面的背景色变换、删除两个函数都用到了 obj ,请问: obj 是哪来的?如何传进去的?执行流程搞不明白。
2016-11-22 回复 有任何疑惑可以回复我~
var table=document.getElementById("table");
var tr=obj.parentNode.parentNode;
//table.removeChild(tr);//所有行都被删除
tr.parentNode.removeChild(tr);//只删除当前行
为什么会全部删除了你=呢,tr.parentNode不是table吗


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

<a href="javascript:;" onclick="deleteRow(this)">删除</a> 

所以this是指a标签

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

我试着把obj输出,用document.write(obj.nodeName);结果显示是A标签,那么A标签父节点是td,再父节点是tr。我也是有点不明白为什么this会指向的是A标签,有点懵

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

LittleBoy 提问者

他上面还套着一层呢。不明白的情况下,把他们的层级关系画出来看看,就明了很多了
2016-09-07 回复 有任何疑惑可以回复我~

这个A标签,把我弄的,一愣一愣的。谢谢大神的点拨

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

qwer12345

所以这个 obj指的是 a标签 ?
2016-07-03 回复 有任何疑惑可以回复我~

嗯嗯,我刚开始也是忽略了一个标签,加油!

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

我也跟你一样刚开始不明白这个问题,但是刚才想明白了,obj是就是函数调用时的this,而this指的是<a>,不是<td>,所以obj.parentNode.parentNode是<tr>。然后tr.parentNode是<table>,然后再removeChild(tr)就是<table>移除<tr>,这个<tr>是前面得到的obj.parentNode.parentNode


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

LittleBoy 提问者

不是不明白this的作用。而是我忽略了一个标签,所以造成了困扰~
2015-12-03 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

var tr = obj.parentNode.parentNode; tr.parentNode.removeChild(tr);是什么意思?

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