幫我看看哪里出錯????
<!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(){ ?????????????????? ?????//?鼠標移動改變背景,可以通過給每行綁定鼠標移上事件和鼠標移除事件來改變所在行背景色。 ????????? ?????????var?gettr?=?document.getElementsByTagName("tr"); ?????????for(var?i=0;i<gettr.length;i++) ?????????{ ?????????????gettr[i].onmouseout=function(){this.style.backgroundColor="#fff";} ?????????????gettr[i].onmouseover=function(){this.style.backgroundColor="#f2f2f2";} ?????????} ?????} ????? ??????//?編寫一個函數,供添加按鈕調用,動態在表格的最后一行添加子節點; ?????function?addRow() ?????{ ?????????var?getRowP?=?document.getElementsById("table"); ?????????var?newRow?=?document.createElement("tr"); ?????????for(var?i=0;i<2;i++) ?????????{ ?????????????var?newtd[i]=document.createElement("td");?????????? ??????????????newtd[i].innerHTML="<input?type?=?'text'?/>" ????????????newRow.appendChild(newts[i]); ?????????} ????????? ?????????getRowP.appendChild(newRow); ???????? ?????} ???? ??? ? ?????//?創建刪除函數 ?????function?delRow(obj) ?????{ ?????????var?getRowP?=?document.getElementById("table"); ?????????var?tr?=?obj.parentNode.parentNode; ?????????getRowP.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="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>
哪里出錯???
2016-03-28
//我有一個調試的經驗,你先把其它的函數注釋掉,留下一個函數;一個一個的調。這兒我調試了一下刪除函數。
//我一行一行加?alert("hello") 發現? getRowP.removeChild(tr);執行不了,看代碼tr的父節點應該是getRowP,怎么回事呢?
//我測一下tr的父節點是不是getRowP,加了這一段
var ftr=tr.parentNode;
? ? ? ? ? ? alert(ftr) ;
? ? ? ? ? ?alert(ftr.isEqualNode(getRowP)) ;
結果是false,彈出ftr,顯示tablesection objection;這一點我也不知道為什么。讓var getRowP= ?obj.parentNode.parentNode.parentNode;結果就正常了。希望能對你有幫助。
//
function delRow(obj)
? ? ?{
? ? ? ?
? ? ? ? var getRowP ?= document.getElementById("table");
? // ? ? ? var getRowP= ?obj.parentNode.parentNode.parentNode;
? ? ? ? ?var tr = obj.parentNode.parentNode;
/* ? ? ? ?{
? ? ? ? ? ? var ftr=tr.parentNode;
? ? ? ? ? ? alert(ftr) ;
? ? ? ? ? ?alert(ftr.isEqualNode(getRowP)) ;
? ? ? ? }
*/
? ? ? ? ?getRowP.removeChild(tr);
? ? ? ??
? ?// ? ? ? alert("hello") ;
? ? ?}
2016-03-27
我給你指出錯誤代碼的地方,和改正方法:
59:a href="javascript:;"onclick="delRow(this)"?? onclick前面缺少空格
然后是你的addraw有問題:var 對象是不能對一個數組進行循環插入的(不確定)? 這個你可以私下嘗試,用for循環進行循環創建不提倡。