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

关于删除函数,为什么getElementById的不行,三个parentNode的就可以

    function deleteTr(obj){

         var tableobj = document.getElementById("table");

        //  var tableobj = obj.parentNode.parentNode.parentNode;

         var ppobj = obj.parentNode.parentNode;

         tableobj.removeChild(ppobj);

}

注释的写法函数就可执行,注释上面的getElementById这个函数就运行不了…

提问者:_move_on_ 2020-12-17 11:26

个回答

  • 炳烛之华
    2021-01-11 17:52:32

    因为在代码解析后,table下面会有一级tbody元素标签,所以a标签的三个parentNode是指这个tbody,而不是table,通过以下代码,你会发现真实的残酷

    var table = document.getElementById('table');

    var oG = obj.parentNode.parentNode.parentNode;

    alert(oG.nodeName);   //TBODY

    alert(table.nodeName); //TABLE