function deleteRow(obj){
var tbody = document.getElementById('table').lastChild; //为什么这里要有lastChild?
var tr = obj.parentNode.parentNode;
tbody.removeChild(tr);
}
tr的父节点不应该就是table吗?如果要有table的孩子为什么是lastChild不是别的Child?
table的字节点结构是text和tbody,你可以用开发者工具进行查看
由于你没给出html和其他js文件,我不知道你这么方法是干嘛的,不过看起来像是删除给定的td节点所在的tr节点。
我重写了一段,你自己慢慢看吧。
<table>
<thead><tr><th>my table</th></tr></thead>
<tbody>
<tr><td>hello</td><td>world</td></tr>
<tr><td>world</td><td>hell</td></tr>
<tr><td>world</td><td>world</td></tr>
</tbody>
<tfoot><tr><th>table end</th></tr></tfoot>
</table>
<script type="text/javascript">
//删除表格中含有‘hello'的行。
var foo = 'hello';
//获取文档中全部的td节点
var tds = document.getElementsByTagName('td');
//对所有td节点的文字与foo比较,如果等于'hello'则删除所在行。
for(var i = 0; i < tds.length; i++){
if(tds[i].childNodes[0].nodeValue == foo)
delRow(tds[i]);
}
//obj是一个td节点
function delRow (obj){
obj.parentNode.parentNode.removeChild(obj.parentNode);
}
</script>