請教大神:window.onload 為什么只包含鼠標(biāo)事件,不包含新增行和刪除行函數(shù)?
window.onload = function()? 如果包含添加行和刪除行函數(shù)時,會使添加和刪除函數(shù)失效,為什么?
<!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(){
? ? ? ? ? ? ? ? ??
? ? ?// 鼠標(biāo)移動改變背景,可以通過給每行綁定鼠標(biāo)移上事件和鼠標(biāo)移除事件來改變所在行背景色。
? ? ?function changec(obj)
? ? ? { obj.style.backgroundColor ="#f2f2f2";
? ? ? }
? ? ? var row = document.getElementsByTagName("tr");?
??
? for (var i=0;i<row.length;i++)
? { row[i].onmouseover=changec(row[i]);
?
}
? ? ? }
? ? ? // 編寫一個函數(shù),供添加按鈕調(diào)用,動態(tài)在表格的最后一行添加子節(jié)點;
? ? ?function addrow()
? ? ?{var newrow = document.createElement("tr");
? ? ? var td1 = document.createElement("td");
? ? ? var td2 = document.createElement("td");
? ? ? var td3 = document.createElement("td");
? ? ??
? ? ? td3.innerHTML="<a href='javascript:;' onclick='delrow(this);'>刪除</a>";
? ? ? ? var tab = document.getElementById("table");
? ? ? ? ? tab.appendChild(newrow);??
? ? ? ? ? newrow.appendChild(td1);
? ? ? ? ? newrow.appendChild(td2);
? ? ? ? ? newrow.appendChild(td3);
? ? ??
? ? ?}
? ? ?// 創(chuàng)建刪除函數(shù)
? ? ?function delrow(obj)
? ? ?{ var tr = obj.parentNode.parentNode;
? ? ? ?tr.parentNode.removeChild(tr);
? ? ?}
? ? ??
? </script>?
?</head>?
?<body>?
? ?<table border="1" width="50%" id="table">
? ?<tr>
<th>學(xué)號</th>
<th>姓名</th>
<th>操作</th>
? ?</tr>??
? ?<tr>
<td>xh001</td>
<td>王小明</td>
<td><a href="javascript:;"? onclick="delrow(this);" >刪除</a></td>? ?<!--在刪除按鈕上添加點擊事件? -->
? ?</tr>
? ?<tr>
<td>xh002</td>
<td>劉小芳</td>
<td><a href="javascript:;" onclick="delrow(this);" >刪除</a></td>? ?<!--在刪除按鈕上添加點擊事件? -->
? ?</tr>??
? ?</table>
? ?<input type="button" value="添加一行" onclick="addrow()" />? ?<!--在添加按鈕上添加點擊事件? -->
?</body>
</html>
2018-06-03
在添加函數(shù)中,你是把 tr 標(biāo)簽添加到了 table 下,而事實一般情況 table 下還習(xí)慣性省略了 tbody 標(biāo)簽,你應(yīng)該是把 tr 添加到 table 的子節(jié)點 tbody 下。