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

为什么必须要使用getElementById("table").lastChild

为什么必须要使用getElementById("table").lastChild,这里使用lastChild的结果为什么不是table的最后一个tr呢?

正在回答

5 回答

定义和用法

<tbody> 标签表格主体(正文)。该标签用于组合 HTML 表格的主体内容。

tbody 元素应该与 thead 和 tfoot 元素结合起来使用。

thead 元素用于对 HTML 表格中的表头内容进行分组,而 tfoot 元素用于对 HTML 表格中的表注(页脚)内容进行分组。

注释:如果您使用 thead、tfoot 以及 tbody 元素,您就必须使用全部的元素。它们的出现次序是:thead、tfoot、tbody,这样浏览器就可以在收到所有数据前呈现页脚了。您必须在 table 元素内部使用这些标签。


0 回复 有任何疑惑可以回复我~

我是这样测试的,现实的结果很明白。

      window.onload = function(){
        var ta=document.getElementById("table").childNodes;
        // alert(ta.length) //提示为2.
        document.write(
        "ta[0].nodeType:" + ta[0].nodeType+
        "<br/> ta[0].nodeName" + ta[0].nodeName + 
        "<br/> ta[1].nodeType:" +ta[1].nodeType + 
        "<br/> ta[1].nodeName:"+ ta[1].nodeName
        );
        // alert(ta[1].childNodes.length)  //提示为6,也就是我们以为的table里的子节点数目,实际是在
                                           //table的childNodes[1].childNodes里
	 }

ta[0].nodeType:3
ta[0].nodeName#text
ta[1].nodeType:1
ta[1].nodeName:TBODY

这下就明白为什么要是使用  document.getElementById("table").lastChild  了,希望可以帮到你。

4 回复 有任何疑惑可以回复我~

用chrome的开发者工具发现table标签下多了一层tbody标签,猜测浏览器会给table标签里自动添加tbody标签,tr都是放在tbody里面,所以getElementById("table").lastChild指的应该是tbody标签,不过table的子标签只有一个tbody,按理说用firstChild应该也可以,但是实测却是不可以,感觉有点儿懵圈~


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

除了IE忽略空格等,其他浏览器都认为是其子节点,比如<p><span></span></p>,p的最后一个子节点是span;如果是<p><span></span>         </p>,就是nodeName为#text的文本节点。

0 回复 有任何疑惑可以回复我~

应该是不是tr

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么必须要使用getElementById("table").lastChild

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