請問為什么shanchu1()不能刪除而shanchu2()卻可以?
<!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)移除事件來改變所在行背景色。
? ? ? ? ?
? ? ?
?
}
? ? ?
? ? ? // 編寫一個函數(shù),供添加按鈕調(diào)用,動態(tài)在表格的最后一行添加子節(jié)點;
? ? ?
? ?
? ? ?
? ? ?function shanchu1()
? ? ?{
? ? ? ? ?var a=document.getElementsByTagName("tr")[1];
? ? ? ? ?var b=document.getElementById("table");
? ? ? ? ?b.removeChild(a);
? ? ?}// 創(chuàng)建刪除函數(shù)
? ? function shanchu2()
? ? {
? ? ? ?var a=document.getElementsByTagName("tr")[2];
? ? ? ? ?var b=document.getElementById("table");
? ? ? ? ?b.lastChild.removeChild(a);
? ? }
? </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:shanchu1();" >刪除</a></td> ? <!--在刪除按鈕上添加點擊事件 ?-->
? </tr>
? <tr>
<td>xh002</td>
<td>劉小芳</td>
<td><a href="javascript:shanchu2();" >刪除</a></td> ? <!--在刪除按鈕上添加點擊事件 ?-->
? </tr> ?
? </table>
? <input type="button" value="添加一行" ?/> ? <!--在添加按鈕上添加點擊事件 ?-->
?</body>
</html>
2017-02-18
上述代碼所列函數(shù) 1、2,區(qū)別在于一行代碼
b.removeChild(a);
b.lastChild.removeChild(a);
????補(bǔ)充知識:
????????<table>標(biāo)簽
????????????????
????????? ?table完整地寫法是上述這張圖,而我們平時寫代碼一般都省略其內(nèi)部的三個子節(jié)點<thead> <tfoot> <tbody>,<tr>存在<tbody>中,<tbody>為<tr>父節(jié)點,但你運行代碼時,瀏覽器會自動給你添加<thead> <tfoot> <tbody>。所以:
????????????b.lastChild.removeChild(a);中b.lastChild即為<table>最后一個子節(jié)點<tbody>,<tbody>中有子節(jié)點<tr>,所以可以通過b.lastChild來直接刪除a了。b.remove則代表table.remove,其只能刪除<thead> <tfoot> <tbody>這三個子節(jié)點。
2017-02-16
因為tr真正的父元素是tbody,tbody正是table的最后一個子元素(table--thead,tbody)