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

移除函数求解,为什么用要给table节点加lastChild才能生效?

为什么这里移除子节点的函数是这样的:

function removeChilds(obj){

    var tbody=document.getElementById("table").lastChild;  //注意这里,有个lastChild,我就是这里不明白,求解

    var tr=obj.parentNode.parentNode;

    tbody.removeChild(tr);

}

在这里,tbody的最后还加了个lastChild,可是要删除的tr行的父元素不就是<table>吗?这里加个lastChild是什么意思?


提问者:六月ovo 2017-01-19 11:54

个回答

  • qq_芷若初荨_uDHOW2
    2017-01-19 17:30:31
    已采纳

    table习惯上常常把标签<tbody></tbody> 省略,但是在dom中他默认有tbody这一层,所以获取的是<tbody></tbody>里面内容,其顺序为:thead、tfoot、tbody. lastChild节点是指其父节点的最后一个节点tbody

  • 钱江风
    2017-06-03 23:35:46

    Table 对象集合

    集合描述

    cells[]    返回包含表格中所有单元格的一个数组。    

    rows[]    返回包含表格中所有行的一个数组。    

    tBodies[]    返回包含表格中所有 tbody 的一个数组。    

    所以var tbody = document.getElementById('table').lastChild;其实是cells层。

    参考http://www.w3school.com.cn/jsref/dom_obj_table.asp


  • 杯酒
    2017-01-19 16:52:03

    lastChild 属性返回指定节点的最后一个子节点,以 Node 对象。