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

第九章编程练习 为什么获取tbody后面要加一个lastChild

function deleteRow(obj){    var tbody = document.getElementById('table').lastChild;   var tr = obj.parentNode.parentNode; tbody.removeChild(tr); }

为什么获取tbody后面要加一个lastChild


提问者:慕侠4489241 2016-04-19 10:47

个回答

  • DMSF
    2016-04-19 19:57:37
    已采纳

    table习惯上,我们常常把标签<tbody></tbody> 省略,但是在dom中他默认有tbody这一层,所以获取的是<tbody></tbody>里面内容,也就是

     

    <tr>

        <th>学号</td>

        <td>姓名</td>

        <td>操作</td>

         </tr>


        <tr>

        <td>xh001</td>

        <td>王小明</td>

        <td><a href="javasript:;" >删除</a></td>

         </tr>


         <tr>

        <td>xh002</td>

        <td>刘小芳</td>

        <td><a href="javasript:;" >删除</a></td>

         </tr>

    如果alert (table.nodeName);结果是TBODY.

    如果把

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

    改成:

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

    那么

    在非IE浏览器中结果是:

    alert(table.nodeName)结果将是#text;

    所以需要获取table的lastChild,然后作为父节点,删除子节点.