亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

var tbody=document.getElementById("table").lastChild; tbody顯示未定義,求助

var tbody=document.getElementById("table").lastChild; ?tbody顯示未定義,求助http://img1.sycdn.imooc.com//597958f30001d61708160203.jpg

正在回答

4 回答

根據瀏覽器的解釋的順序, 當它讀到getElementById("table")的時候,還不知道有table這個東西.?

所以你把script代碼段放到table以后, getElementById.....這行隨意放函數外面還是里面

1 回復 有任何疑惑可以回復我~
#1

風到這里就是粘 提問者

非常感謝!但是我還想問一下,放在addtr()里面是為什么可以?是因為點擊按鈕時,又把函數解釋了一遍才拿到那個table嗎?
2017-07-28 回復 有任何疑惑可以回復我~
#2

X4tar 回復 風到這里就是粘 提問者

是的,點擊事件會回調函數addtr(), 函數中的tbody是個只屬于函數的局部變量,每次調用完函數后都會被釋放掉.也是遵守先聲明后調用的順序.如果把var tbody = ......這句放在tbody......后面就會報錯
2017-07-28 回復 有任何疑惑可以回復我~
#3

風到這里就是粘 提問者 回復 X4tar

明白了,非常感謝!
2017-07-29 回復 有任何疑惑可以回復我~
<!DOCTYPE?html>
<html>
<head>
<meta?charset="UTF-8">
<title>制作一個表格,顯示班級的學生信息</title>
<script?type="text/javascript">
window.onload?=?function(){
//鼠標移動改變背景,鼠標移到不同行上時背景色改為色值為?#f2f2f2,移開鼠標時則恢復為原背景色?#fff
//提示:1.獲取表格的行,getElementsByTagName?。2.使用for進行循環,為每行添加事件及背景顏色設置。
var?trs=document.getElementsByTagName("tr");
for?(var?i?=?0;?i?<?trs.length;?i++)?{
trs[i].onmouseover=function(){
this.style.backgroundColor="pink";
};
trs[i].onmouseout=function(){
this.style.backgroundColor="#fff";
};
}
}

//?編寫一個函數,供添加按鈕調用,動態在表格的最后一行添加一行;
//?使用createElement()、innerHTML、appendChild()
function?addtr(){
var?stuNo=prompt("請輸入學號:","");
var?name=prompt("請輸入姓名:","");
var?newtr=document.createElement("tr");
newtr.innerHTML='<td>'+stuNo+'</td>'+'<td>'+name+'</td>'+'<td>'+'<a?href="javascript:deleteRow();"?>刪除</a>'+'</td>';?//innerHTML可以解析HTML標簽
var?tbody=document.getElementById("table").lastChild;//瀏覽器在table標簽下默認添加tbody節點,為什么放到addtr()外面不好使?
tbody.appendChild(newtr);
}
//??使用removeChild()創建刪除函數,刪除當前行
function?deleteRow(){
var?tbody=document.getElementById("table").lastChild;
tbody.removeChild(this.parentNode.parentNode);
}
</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:deleteRow();"?>刪除</a></td><!--在刪除按鈕上添加點擊事件??-->
</tr>
<tr>
<td>xh002</td>
<td>劉小芳</td>
<td><a?href="javascript:deleteRow();"?>刪除</a></td><!--在刪除按鈕上添加點擊事件??-->
</tr>
</table>
<input?type="button"?value="添加一行"?onclick="addtr()"?/><!--在添加按鈕上添加點擊事件??-->
</body>
</html>


0 回復 有任何疑惑可以回復我~

麻煩把完整代碼貼出來

0 回復 有任何疑惑可以回復我~

把var tbody=document.getElementById("table").lastChild; 放在了addtr()里了好使了,這是為什么?


0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

var tbody=document.getElementById("table").lastChild; tbody顯示未定義,求助

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號