課程
/前端開發
/JavaScript
/JavaScript進階篇
var tbody=document.getElementById("table").lastChild; ?tbody顯示未定義,求助
2017-07-27
源自:JavaScript進階篇 9-22
正在回答
根據瀏覽器的解釋的順序, 當它讀到getElementById("table")的時候,還不知道有table這個東西.?
所以你把script代碼段放到table以后, getElementById.....這行隨意放函數外面還是里面
風到這里就是粘 提問者
X4tar 回復 風到這里就是粘 提問者
風到這里就是粘 提問者 回復 X4tar
<!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>
麻煩把完整代碼貼出來
把var tbody=document.getElementById("table").lastChild; 放在了addtr()里了好使了,這是為什么?
舉報
本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界
1 回答var tbody = document.getElementById('table').lastChild;
1 回答var tbody = document.getElementById("table").lastChild;
7 回答var tbody = document.getElementById('table').lastChild; 這行.lastchild什么意思
3 回答看不太明白var tbody=document.getElementById("table").lastChild;
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2017-07-28
根據瀏覽器的解釋的順序, 當它讀到getElementById("table")的時候,還不知道有table這個東西.?
所以你把script代碼段放到table以后, getElementById.....這行隨意放函數外面還是里面
2017-07-28
2017-07-28
麻煩把完整代碼貼出來
2017-07-27
把var tbody=document.getElementById("table").lastChild; 放在了addtr()里了好使了,這是為什么?