9-22編程練習同學代碼又沒明白的地方 新手自學求幫助!
同學代碼如下:
<!DOCTYPE html>
<html>
?<head>
? <title> new document </title>
? <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
? <script type="text/javascript">
? ? ? window.onload = function(){
? ? ? ? ? ?var trs = document.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";
? ? ? ? ? ? ? ? }
? ? ? ? ? }
? ? ? ? }
? ? ?function addTo(){
? ? ? ? ? ?var table = 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="#" onclick = "deleteItem(this);return false;" >刪除</a>';
? ? ? ? ? ?tr.appendChild(td);
? ? ? ? ? ?table.appendChild(tr);
? ? ? ? ? }
? ? ? function deleteItem(obj){
? ? ? ? ? ? var table = document.getElementById('table').lastChild;
? ? ? ? ? ? var tr = obj.parentNode.parentNode;
? ? ? ? ? ? table.removeChild(tr);
? ? ? }
? </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="#" onclick = "deleteItem(this);return false;" >刪除</a></td>
? ? ?</tr>
? ? ?<tr>
? ? <td>xh002</td>
? ? <td>劉小芳</td>
? ? <td><a href="javasript:;" onclick = "deleteItem(this);" >刪除</a></td>
? ? ?</tr>
? ? ?</table>
? ? ?<input type="button" value="添加一行" ?onclick = "addTo();"/>
?</body>
</html>
提問:
一、 function deleteItem(obj){
? ? ? ? ? ? var table = document.getElementById('table').lastChild;
? ? ? ? ? ? var tr = obj.parentNode.parentNode;
? ? ? ? ? ? table.removeChild(tr);
該函數是創建刪除行的函數,?var table = document.getElementById('table').lastChild; 這個找到的是table最后一個節點,該節點是 最后一個</tr>和</table>之間的空白節點。不知道我理解的對不對。? 那table.removeChild(tr);這句話執行就應該有問題?。?/p>
2017-08-02
....我找到答案了!
table的結構,table默認包含thead,tfoot,tbody,而且是按這個順序排列的,所有lastchild就是取得tbody