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