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>