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

为什么通过getElementById("table")获得父节点删除tr不行?

 var parenttr = one.parentNode.parentNode;  

        // var mytable = document.getElementById("table");  不知道为什么这种方式不行

        var mytable = one.parentNode.parentNode.parentNode;

        alert(parenttr+"               "+mytable);

        mytable.removeChild(parenttr);


提问者:千夜奇谭 2016-04-25 22:24

个回答

  • mirrorofsky
    2016-04-26 10:51:48
    已采纳

    1. table下是tbody,tbody下才是tr,所以table的子节点(childNodes)有2个,一个是名字为#text,另一个为TBODY.

    2. tbody的子节点才是tr

    3. 可用这段代码测试:

    4.   function test(){

            var tab=document.getElementById("table").childNodes;

            alert(tab.length+","+tab[0].nodeName+"<br />"+tab[1].nodeName);

            }

  • Uauslman
    2016-04-26 13:14:20

    楼上正解

  • mirrorofsky
    2016-04-26 10:53:11

    table标签下默认有<thead></thead> <tbody></tbody>两个子节点,还可能有空白符产生的文本节点