刪除table列表的一行,有一個小疑惑。
我要刪除列表里面的一行,雖然變量對象table 可以用obj.parentNode.parentNode.parentNode來代替這個方法是可行的。但是為什么下面代碼里面去掉lastChild會不行了呢。層次不是剛剛好嗎???求解
??????function?deleteItem(obj){ ????????????var?table?=?document.getElementById('table').lastChild;/*問題是這里*/ ????????????var?tr?=?obj.parentNode.parentNode; ????????????table.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="#"?onclick?=?"deleteItem(this);return?false;"?>刪除</a></td> ?????</tr> ?????<tr> ????<td>xh002</td> ????<td>劉小芳</td> ????<td><a?href="javasript:;"?onclick?=?"deleteItem(this);"?>刪除</a></td> ?????</tr> ?????</table> ?????<input?type="button"?value="添加一行"??onclick?=?"addTo();"/> ?</body>
2016-12-19
自己測試解決了。<table>與<tr>之間會隱性生成<tbody>,而類似于Chrome這類型瀏覽器回車鍵算是一個文本節(jié)點所以<tbody>是<table>的lastChild.