課程
/前端開發
/JavaScript
/JavaScript進階篇
var tbody = document.getElementById('table').lastChild;
2016-04-06
源自:JavaScript進階篇 9-22
正在回答
經過測試我發現在table標簽后其實不是html文檔中所寫的tr標簽,而是TBODY標簽。這是測試代碼
<!DOCTYPE?html> <html> <head> <meta?charset="UTF-8"> <title>Document</title> </head> <body> ??<table?border="1"?width="50%"?id="table"> ??<tr> <th>學號</th> <th>姓名</th> <th>操作</th> ??</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> ??<input?type="button"?value="添加一行"??/>???<!--在添加按鈕上添加點擊事件??--> ??<script?type="text/javascript"> ??var?a?=?document.getElementById('table'); ??var?b?=?a.childNodes; ??for?(var?i?=?0;?i?<?b.length;?i++)?{ ???document.write("<br/>"+b[i].nodeName); ??} ?? ??</script> </body> </html>
所得結果為
#textTBODY
很明顯的可以看到,table只有兩個子節點,第一個#text是table標簽后的空白節點,而TBODY則是空白節點后的節點。相當于瀏覽器自動加載了一個TBODY節點,將原先table標簽的子節點全部保存進了TBODY。
果凍上樹 提問者
<!DOCTYPE html>
<html>
?<head>
? <title> new document </title> ?
? <meta http-equiv="Content-Type" content="text/html; charset=gbk"/> ??
? <script type="text/javascript">?
? window.onload = function(){
? ? Highlight();
} ?
function addOne(obj){?
? ?var tbody = document.getElementById('table').lastChild; ?
var tr = document.createElement('tr'); ?
?
var td = document.createElement("td");
td.innerHTML = "<input type='text'/>";
tr.appendChild(td);
td = document.createElement("td"); ?
td = document.createElement("td");
td.innerHTML = "<a href='javascript:;' onclick='deleteRow(this)'>刪除</a>";
tr.appendChild(td); ??
tbody.appendChild(tr); ??
Highlight();
? ? }
function deleteRow(obj){
var tr = obj.parentNode.parentNode;
tbody.removeChild(tr);
}
function Highlight(){
? ? ? ??
trs = tbody.getElementsByTagName('tr'); ??
for(var i =1;i<trs.length;i++){
trs[i].onmouseover = function(){
this.style.backgroundColor ="#f2f2f2";
}?
trs[i].onmouseout = function(){
this.style.backgroundColor ="#fff";
? </script>?
?</head>?
?<body>?
? <table border="1" width="50%" id="table">
? <tr>
<th>學號</th>
<th>姓名</th>
<th>操作</th>
? </tr> ?
<td>xh001</td>
<td>王小明</td>
<td><a href="javascript:;" onclick="deleteRow(this)" >刪除</a></td> ? <!--在刪除按鈕上添加點擊事件 ?-->
? </tr>
<td>xh002</td>
<td>劉小芳</td>
? </table>
? <input type="button" value="添加一行" onclick="addOne()" /> ? <!--在添加按鈕上添加點擊事件 ?-->
?</body>
</html>
請問指的是哪些?
id 為 table 的節點的最后一個子節點
舉報
本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界
1 回答tbody獲得的節點是哪個?
3 回答var tbody = document.getElementById('table').lastChild; 這個到底是指哪個
1 回答tr的爹是tbody,tbody的爹是table?那么我再table下加一個tr,怎么是tabel.appendChild(tr),不是tbody.appendChild(tr)?
1 回答懂了這里隱藏了tbody這個標簽,damn?。?!
2 回答document.write(tbody.nodeName);結果為TBODY呢,我HTML中沒有這個節點???tbody = document.getElementById('myTable').lastChild; 為什么這里要加上lastChild呢?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-04-13
經過測試我發現在table標簽后其實不是html文檔中所寫的tr標簽,而是TBODY標簽。這是測試代碼
所得結果為
#text
TBODY
很明顯的可以看到,table只有兩個子節點,第一個#text是table標簽后的空白節點,而TBODY則是空白節點后的節點。相當于瀏覽器自動加載了一個TBODY節點,將原先table標簽的子節點全部保存進了TBODY。
2016-04-06
<!DOCTYPE html>
<html>
?<head>
? <title> new document </title> ?
? <meta http-equiv="Content-Type" content="text/html; charset=gbk"/> ??
? <script type="text/javascript">?
? window.onload = function(){
? ? Highlight();
} ?
function addOne(obj){?
? ?var tbody = document.getElementById('table').lastChild; ?
var tr = document.createElement('tr'); ?
?
var td = document.createElement("td");
td.innerHTML = "<input type='text'/>";
tr.appendChild(td);
?
td = document.createElement("td"); ?
td.innerHTML = "<input type='text'/>";
tr.appendChild(td);
?
td = document.createElement("td");
td.innerHTML = "<a href='javascript:;' onclick='deleteRow(this)'>刪除</a>";
tr.appendChild(td); ??
?
tbody.appendChild(tr); ??
Highlight();
? ? }
function deleteRow(obj){
? ?var tbody = document.getElementById('table').lastChild; ?
var tr = obj.parentNode.parentNode;
tbody.removeChild(tr);
}
function Highlight(){
var tbody = document.getElementById('table').lastChild;
? ? ? ??
trs = tbody.getElementsByTagName('tr'); ??
for(var i =1;i<trs.length;i++){
trs[i].onmouseover = function(){
this.style.backgroundColor ="#f2f2f2";
}?
trs[i].onmouseout = function(){
this.style.backgroundColor ="#fff";
}?
} ?
}
? </script>?
?</head>?
?<body>?
? <table border="1" width="50%" id="table">
? <tr>
<th>學號</th>
<th>姓名</th>
<th>操作</th>
? </tr> ?
? <tr>
<td>xh001</td>
<td>王小明</td>
<td><a href="javascript:;" onclick="deleteRow(this)" >刪除</a></td> ? <!--在刪除按鈕上添加點擊事件 ?-->
? </tr>
? <tr>
<td>xh002</td>
<td>劉小芳</td>
<td><a href="javascript:;" onclick="deleteRow(this)" >刪除</a></td> ? <!--在刪除按鈕上添加點擊事件 ?-->
? </tr> ?
? </table>
? <input type="button" value="添加一行" onclick="addOne()" /> ? <!--在添加按鈕上添加點擊事件 ?-->
?</body>
</html>
請問指的是哪些?
2016-04-06
id 為 table 的節點的最后一個子節點