问答详情
源自:9-22 编程练习

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标签下啊。

提问者:LittleBoy 2015-04-15 11:06

个回答

  • 康振宁
    2015-04-15 15:29:17
    已采纳

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

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

  • 緣来
    2019-07-26 21:06:26

    var table=document.getElementById("table");
    var tr=obj.parentNode.parentNode;
    //table.removeChild(tr);//所有行都被删除
    tr.parentNode.removeChild(tr);//只删除当前行
    为什么会全部删除了你=呢,tr.parentNode不是table吗


  • 慕神7783645
    2017-03-09 18:12:34

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

    所以this是指a标签

  • 陪你Sunset
    2016-09-06 14:26:04

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

  • 阿忠01
    2016-04-15 23:49:51

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

  • 懒懒萌萌的
    2015-12-03 16:42:17

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

  • 懒懒萌萌的
    2015-12-02 11:36:53

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