課程
/前端開發(fā)
/JavaScript
/JavaScript進(jìn)階篇
var tbody = document.getElementById('table').lastChild;
2016-04-06
源自:JavaScript進(jìn)階篇 9-22
正在回答
經(jīng)過測(cè)試我發(fā)現(xiàn)在table標(biāo)簽后其實(shí)不是html文檔中所寫的tr標(biāo)簽,而是TBODY標(biāo)簽。這是測(cè)試代碼
<!DOCTYPE?html> <html> <head> <meta?charset="UTF-8"> <title>Document</title> </head> <body> ??<table?border="1"?width="50%"?id="table"> ??<tr> <th>學(xué)號(hào)</th> <th>姓名</th> <th>操作</th> ??</tr>?? ??<tr> <td>xh001</td> <td>王小明</td> <td><a?href="javascript:;"?>刪除</a></td>???<!--在刪除按鈕上添加點(diǎn)擊事件??--> ??</tr> ??<tr> <td>xh002</td> <td>劉小芳</td> <td><a?href="javascript:;"?>刪除</a></td>???<!--在刪除按鈕上添加點(diǎn)擊事件??--> ??</tr>?? ??</table> ??<input?type="button"?value="添加一行"??/>???<!--在添加按鈕上添加點(diǎn)擊事件??--> ??<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>
所得結(jié)果為
#textTBODY
很明顯的可以看到,table只有兩個(gè)子節(jié)點(diǎn),第一個(gè)#text是table標(biāo)簽后的空白節(jié)點(diǎn),而TBODY則是空白節(jié)點(diǎn)后的節(jié)點(diǎn)。相當(dāng)于瀏覽器自動(dòng)加載了一個(gè)TBODY節(jié)點(diǎn),將原先table標(biāo)簽的子節(jié)點(diǎn)全部保存進(jìn)了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>學(xué)號(hào)</th>
<th>姓名</th>
<th>操作</th>
? </tr> ?
<td>xh001</td>
<td>王小明</td>
<td><a href="javascript:;" onclick="deleteRow(this)" >刪除</a></td> ? <!--在刪除按鈕上添加點(diǎn)擊事件 ?-->
? </tr>
<td>xh002</td>
<td>劉小芳</td>
? </table>
? <input type="button" value="添加一行" onclick="addOne()" /> ? <!--在添加按鈕上添加點(diǎn)擊事件 ?-->
?</body>
</html>
請(qǐng)問指的是哪些?
id 為 table 的節(jié)點(diǎn)的最后一個(gè)子節(jié)點(diǎn)
舉報(bào)
本課程從如何插入JS代碼開始,帶您進(jìn)入網(wǎng)頁動(dòng)態(tài)交互世界
3 回答var tbody = document.getElementById('table').lastChild; 這個(gè)到底是指哪個(gè)
1 回答tbody獲得的節(jié)點(diǎn)是哪個(gè)?
1 回答tr的爹是tbody,tbody的爹是table?那么我再table下加一個(gè)tr,怎么是tabel.appendChild(tr),不是tbody.appendChild(tr)?
7 回答var tbody = document.getElementById('table').lastChild; 這行.lastchild什么意思
1 回答懂了這里隱藏了tbody這個(gè)標(biāo)簽,damn?。?!
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)
2016-04-13
經(jīng)過測(cè)試我發(fā)現(xiàn)在table標(biāo)簽后其實(shí)不是html文檔中所寫的tr標(biāo)簽,而是TBODY標(biāo)簽。這是測(cè)試代碼
所得結(jié)果為
#text
TBODY
很明顯的可以看到,table只有兩個(gè)子節(jié)點(diǎn),第一個(gè)#text是table標(biāo)簽后的空白節(jié)點(diǎn),而TBODY則是空白節(jié)點(diǎn)后的節(jié)點(diǎn)。相當(dāng)于瀏覽器自動(dòng)加載了一個(gè)TBODY節(jié)點(diǎn),將原先table標(biāo)簽的子節(jié)點(diǎn)全部保存進(jìn)了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>學(xué)號(hào)</th>
<th>姓名</th>
<th>操作</th>
? </tr> ?
? <tr>
<td>xh001</td>
<td>王小明</td>
<td><a href="javascript:;" onclick="deleteRow(this)" >刪除</a></td> ? <!--在刪除按鈕上添加點(diǎn)擊事件 ?-->
? </tr>
? <tr>
<td>xh002</td>
<td>劉小芳</td>
<td><a href="javascript:;" onclick="deleteRow(this)" >刪除</a></td> ? <!--在刪除按鈕上添加點(diǎn)擊事件 ?-->
? </tr> ?
? </table>
? <input type="button" value="添加一行" onclick="addOne()" /> ? <!--在添加按鈕上添加點(diǎn)擊事件 ?-->
?</body>
</html>
請(qǐng)問指的是哪些?
2016-04-06
id 為 table 的節(jié)點(diǎn)的最后一個(gè)子節(jié)點(diǎn)