刪除函數問題
<!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(){
? ? ? ? ? ? ? ? ??
? ? ?// 鼠標移動改變背景,可以通過給每行綁定鼠標移上事件和鼠標移除事件來改變所在行背景色。
? ? ? ? ?
? ? ?
?
}
? ? ?
? ? ? // 編寫一個函數,供添加按鈕調用,動態在表格的最后一行添加子節點;
? ? ?
? ?
? ? ?
? ? ?// 創建刪除函數
? ? ?function rem(rec)
? ? ?{
? ? ? ? ?var x = rec.parentNode.parentNode;
? ? ? ? ?var y = document.getElementById("table")
? ? ? ? ?//document.write(y.lastChild.nodename);
? ? ? ? ?y.removeChild(x);
? ? ?}
? </script>?
?</head>?
?<body>?
? <table border="1" width="50%" id="table" name="aa">
? <tr>
<th>學號</th>
<th>姓名</th>
<th>操作</th>
? </tr> ?
? <tr>
<td>xh001</td>
<td>王小明</td>
<td><a href="javascript:;" onclick="rem(this);" >刪除</a></td> ? <!--在刪除按鈕上添加點擊事件 ?-->
? </tr>
? <tr>
<td>xh002</td>
<td>劉小芳</td>
<td><a href="javascript:;" onclick="rem(this);" ?>刪除</a></td> ? <!--在刪除按鈕上添加點擊事件 ?-->
? </tr> ?
? </table>
? <input type="button" value="添加一行" ?/> ? <!--在添加按鈕上添加點擊事件 ?-->
?</body>
</html>
刪除函數如下:
function rem(rec)
? ? ?{
? ? ? ? ?var x = rec.parentNode.parentNode;
? ? ? ? ?var y = document.getElementById("table")
? ? ? ? ?//document.write(y.lastChild.nodename);
? ? ? ? ?y.removeChild(x);
? ? ?}
但是這樣刪除不了。把函數改成:
? ? ?function rem(rec)
? ? ?{
? ? ? ? ?var x = rec.parentNode.parentNode;
? ? ? ? ?var y = document.getElementById("table").lastChild;
? ? ? ? ?//document.write(y.lastChild.nodename);
? ? ? ? ?y.removeChild(x);
? ? ?}
就可以刪除了。這是為什么?要刪除的行的父節點不是table嗎?
2015-12-19
還有個tbody節點
2016-02-05
補充yueyue123同學的:
? ?var tbody = document.getElementById('table').childNodes[1]; //也是可以的:間接證明:在table有兩個子節點,第一個是空白節點(#text),然后是tbody.
2016-01-15
2015-12-20
table有一個tbody的子節點,當你沒寫時瀏覽器會自動添加,現在table有兩個子節點,第一個是空白節點(#text),然后是tbody.