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

来源:9-22 编程练习

千夜奇谭

2016-04-25 22:24

 var parenttr = one.parentNode.parentNode;  

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

        var mytable = one.parentNode.parentNode.parentNode;

        alert(parenttr+"               "+mytable);

        mytable.removeChild(parenttr);


写回答 关注

3回答

  • 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);

            }

    千夜奇谭

    非常感谢!

    2016-04-26 18:58:18

    共 1 条回复 >

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

    楼上正解

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

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

JavaScript进阶篇

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

468194 学习 · 21891 问题

查看课程

相似问题