為什么我新添加的行中的“”onclick"可以起作用,而原本兩行的“onclick”不起作用?
<!DOCTYPE html>
<html>
?<head>
? <title> new document </title> ?
? <meta http-equiv="Content-Type" content="text/html; charset=gbk"/> ??
? <script type="text/javascript">?
? ? 'use strict';
? ? ? window.onload = function(){
? ? ? ? ? ? ? ? ??
? ? ?// 鼠標移動改變背景,可以通過給每行綁定鼠標移上事件和鼠標移除事件來改變所在行背景色。
? ? ? ?HighLight();
? ? ?}
? ? ? // 編寫一個函數(shù),供添加按鈕調用,動態(tài)在表格的最后一行添加子節(jié)點;
? ? ?function addLine(obj){
? ? ? ? var table = document.getElementById("table");
? ? ? ? var newTr = document.createElement("tr");
? ? ? ? var newTd = document.createElement("td");
? ? ? ? newTd.innerHTML="<input type='text' style='width:40px'/>";
? ? ? ? newTr.appendChild(newTd);
? ? ? ??
? ? ? ? newTd = document.createElement("td");
? ? ? ? newTd.innerHTML="<input type='text' style='width:40px'/>";
? ? ? ? newTr.appendChild(newTd);
? ? ? ??
? ? ? ? newTd = document.createElement("td");
? ? ? ? newTd.innerHTML="<a href='javascript:;' onclick='deleteLine(this)'>刪除</a>";
? ? ? ? newTr.appendChild(newTd);
? ? ? ??
? ? ? ? table.appendChild(newTr);
? ? ? ? HighLight();
? ? ?} ?
? ?
? ? ?// 創(chuàng)建刪除函數(shù)
? ? ?function deleteLine(obj){
? ? ? ? var table = document.getElementById("table");
? ? ? ? var deleteTr = obj.parentNode.parentNode;
? ? ? ? table.removeChild(deleteTr);
? ? }
? ? ? ??
? ? // 背景色函數(shù) ? ?
? ? ?function HighLight(){
? ? ? ? var lightTr = document.getElementsByTagName("tr");
? ? ? ? for (var i =0;i<lightTr.length;i++){
? ? ? ? ? ? lightTr[i].onmouseover = function(){
? ? ? ? ? ? ? ? this.style.backgroundColor="#f2f2f2";
? ? ? ? ? ? }
? ? ? ? ? ? lightTr[i].onmouseout = ?function(){
? ? ? ? ? ? ? ? this.style.backgroundColor="#fff";
? ? ? ? ? ? }
? ? ? ? }
? ? ?}
? </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:;' onclick='deleteLine(this)'>刪除</a>//這個“onclick”不起作用
? ? ? ? </td> ? <!--在刪除按鈕上添加點擊事件 ?-->
? </tr>
? <tr>
<td>xh002</td>
<td>劉小芳</td>
<td>
? ? ? ? <a href='javascript:;' onclick='deleteLine(this)'>刪除</a>//這個“onclick”不起作用
? ? ? ? </td> ? <!--在刪除按鈕上添加點擊事件 ?-->
? </tr> ?
? </table>
? <input type="button" value="添加一行" onclick="addLine()"/> ? <!--在添加按鈕上添加點擊事件 ?-->
?</body>
</html>
2016-09-14
查看瀏覽器控制臺可知:如果不顯式指定表格行的位置,瀏覽器渲染表格時默認會把表格行放在tbody中,即tr的父元素不是table而是tbody。所以刪除行的語句可改為:deleteTr.parentNode.removeChild(deleteTr)
2016-09-29
?var table = document.getElementById("table"); ? 改成var table = document.getElementById("table").lastChild;即是tbody