為什么用了.lastChild獲取的才是table節點?
如題:
偌顏寧解釋說:table的子元素是text空節點和tbody節點,而tr和td都在tbody節點中,所以需要獲取table的最后一個子節點元素才行
問題一:意思是通過.lastChild獲取的實際是tbody節點么?但事實上課程已給的代碼中</tr>和</table>之間還有空格,也就是說我認為tbody節點后還有text空節點,怎么能確定通過.lastChild獲取的不是text空節點呢?
問題二:table中如果用tbody的話,亦須先用thead和tfoot,即便thead中不同時含有tr、td(含的是th、td),tfoot中卻同時含有tr和td,為什么偌顏寧解釋table的子元素是text空節點和tbody節點,而不是text空節點、thead節點、tfoot節點和tbody節點以及tbody后可能的text空節點?
只是對偌顏寧的解答仍有些疑惑不理解,沒別的意思。望熱心的學友幫忙解答一下我的兩個問題,謝謝
2016-11-08
我也遇到了同樣的問題,怎么也沒想通
2016-10-20
<thead>和<tfoot>不會被默認生成;碰到有<tr>或<td>或<th>,就會有<tbody>.若一個都無,則不會有<tbody>;瀏覽器加載到<tr>,自動在外面套上父級<tbody>,那個空白標簽其實是第一個<tr>前面的,<tbody>添加的時候并有沒有把這個空白標簽包括進去,這是我的理解,看下這段代碼就沒有空白字符了。
<!DOCTYPE html>
<html>
<head>
? ? <meta charset=UTF-8>
? ? <title>Document</title>
</head>
<body>
? ? <table border="1" width="50%" id="table"><tr>
? ? ? ? ? ? <td>學號</td>
? ? ? ? ? ? <td>姓名</td>
? ? ? ? ? ? <td>操作</td>
? ? ? ? </tr>
? ? ? ? <tr>
? ? ? ? ? ? <td>xh001</td>
? ? ? ? ? ? <td>王小明</td>
? ? ? ? ? ? <td><a href="javascript:;">刪除</a></td>
? ? ? ? ? ? <!--在刪除按鈕上添加點擊事件 ?-->
? ? ? ? </tr>
? ? ? ? <tr>
? ? ? ? ? ? <td>xh002</td>
? ? ? ? ? ? <td>劉小芳</td>
? ? ? ? ? ? <td><a href="javascript:;">刪除</a></td>
? ? ? ? ? ? <!--在刪除按鈕上添加點擊事件 ?-->
? ? ? ? </tr></table>
? ? <script type="text/javascript">
? ? var a = document.getElementById('table');
? ? var b = a.childNodes;
? ? console.log(b.length);
? ? for (var i = 0; i < b.length; i++) {
? ? ? ? document.write("<br/>" + b[i].nodeName);
? ? }
? ? </script>
</body>
</html>
2016-04-10
把table的所有子節點獲取,然后輸出就可以知道結果了。
2016-03-11
14年的問題了。我16年還是很想知道
2015-05-25
table習慣上,我們常常把標簽<tbody></tbody> 省略,但是在dom中他默認有tbody這一層,所以獲取的是<tbody></tbody>里面內容
2014-11-29
有會的可以幫忙回答一下這個問題么,謝謝
2014-11-26
雖然用
function mydel(obj){
? ? ? ?var tr=obj.parentNode.parentNode;
? ? ? tr.parentNode.removeChild(tr);
? ? } ?
同樣能夠解決問題,但我還是希望能把這里的.lastChild問題給搞懂,望指教