为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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


正在回答

1 回答

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,然后作为父节点,删除子节点.


3 回复 有任何疑惑可以回复我~
#1

慕侠4489241 提问者

非常感谢!
2016-04-20 回复 有任何疑惑可以回复我~
#2

慕之光

这样算的话,table的子节点数为2,那么</tbody>与</table>之间的空白节点是不是被忽略了,还是dom中他默认有tbody这一层的时候就默认</tbody>与</table>之间没有空白?不同场合IE对空白节点的忽略程度似乎不太一致,这个问题很困扰我,求帮助.....
2016-04-23 回复 有任何疑惑可以回复我~
#3

sz_yeefun

可以看一下這個的整理: http://www.cnblogs.com/yanglin-gdqy-blog/p/4534322.html
2016-09-09 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信