課程
/前端開發
/JavaScript
/JavaScript進階篇
為什么必須要使用getElementById("table").lastChild,這里使用lastChild的結果為什么不是table的最后一個tr呢?
2016-10-05
源自:JavaScript進階篇 9-22
正在回答
定義和用法
<tbody> 標簽表格主體(正文)。該標簽用于組合 HTML 表格的主體內容。
tbody 元素應該與?thead?和?tfoot?元素結合起來使用。
thead 元素用于對 HTML 表格中的表頭內容進行分組,而 tfoot 元素用于對 HTML 表格中的表注(頁腳)內容進行分組。
注釋:如果您使用 thead、tfoot 以及 tbody 元素,您就必須使用全部的元素。它們的出現次序是:thead、tfoot、tbody,這樣瀏覽器就可以在收到所有數據前呈現頁腳了。您必須在 table 元素內部使用這些標簽。
我是這樣測試的,現實的結果很明白。
??????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:3ta[0].nodeName#textta[1].nodeType:1ta[1].nodeName:TBODY
這下就明白為什么要是使用 ?document.getElementById("table").lastChild ?了,希望可以幫到你。
用chrome的開發者工具發現table標簽下多了一層tbody標簽,猜測瀏覽器會給table標簽里自動添加tbody標簽,tr都是放在tbody里面,所以getElementById("table").lastChild指的應該是tbody標簽,不過table的子標簽只有一個tbody,按理說用firstChild應該也可以,但是實測卻是不可以,感覺有點兒懵圈~
除了IE忽略空格等,其他瀏覽器都認為是其子節點,比如<p><span></span></p>,p的最后一個子節點是span;如果是<p><span></span> ? ? ? ? </p>,就是nodeName為#text的文本節點。
應該是不是tr
舉報
本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界
2 回答.getElementById('table').lastChild;
3 回答為什么var table = document.getElementById("table").lastChild要加lastChild?
2 回答為什么用getElementsByTagName找table不行必須要用getElementsById
4 回答js 進階篇 9-22 的參考 獲取table寫的是getElementById('table').lastChild;不理解為什么要帶上lastChild
3 回答為什么代碼的最尾要加上.lastChild;?var tbody = document.getElementById('table').lastChild;?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2017-05-28
定義和用法
<tbody> 標簽表格主體(正文)。該標簽用于組合 HTML 表格的主體內容。
tbody 元素應該與?thead?和?tfoot?元素結合起來使用。
thead 元素用于對 HTML 表格中的表頭內容進行分組,而 tfoot 元素用于對 HTML 表格中的表注(頁腳)內容進行分組。
注釋:如果您使用 thead、tfoot 以及 tbody 元素,您就必須使用全部的元素。它們的出現次序是:thead、tfoot、tbody,這樣瀏覽器就可以在收到所有數據前呈現頁腳了。您必須在 table 元素內部使用這些標簽。
2016-10-08
我是這樣測試的,現實的結果很明白。
ta[0].nodeType:3
ta[0].nodeName#text
ta[1].nodeType:1
ta[1].nodeName:TBODY
這下就明白為什么要是使用 ?document.getElementById("table").lastChild ?了,希望可以幫到你。
2016-10-08
用chrome的開發者工具發現table標簽下多了一層tbody標簽,猜測瀏覽器會給table標簽里自動添加tbody標簽,tr都是放在tbody里面,所以getElementById("table").lastChild指的應該是tbody標簽,不過table的子標簽只有一個tbody,按理說用firstChild應該也可以,但是實測卻是不可以,感覺有點兒懵圈~
2016-10-05
除了IE忽略空格等,其他瀏覽器都認為是其子節點,比如<p><span></span></p>,p的最后一個子節點是span;如果是<p><span></span> ? ? ? ? </p>,就是nodeName為#text的文本節點。
2016-10-05
應該是不是tr