我要删除列表里面的一行,虽然变量对象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>学号</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>
自己测试解决了。<table>与<tr>之间会隐性生成<tbody>,而类似于Chrome这类型浏览器回车键算是一个文本节点所以<tbody>是<table>的lastChild.