为了账号安全,请及时绑定邮箱和手机立即绑定

删除方法中的lastChild

function deleteRow(obj){

         var tbody = document.getElementById('table').lastChild; //为什么这里要有lastChild?       

    var tr = obj.parentNode.parentNode;

tbody.removeChild(tr);

}


tr的父节点不应该就是table吗?如果要有table的孩子为什么是lastChild不是别的Child?

正在回答

3 回答

table的字节点结构是text和tbody,你可以用开发者工具进行查看

0 回复 有任何疑惑可以回复我~
#1

EddieQu 提问者

原来table和tr之间还隔了一层。。。
2015-06-19 回复 有任何疑惑可以回复我~
#2

歪嘴的肖恩 回复 EddieQu 提问者

他们之间隔了一层什么啊?这里我也是很疑惑!求指教!
2015-08-18 回复 有任何疑惑可以回复我~
#3

really4you 回复 歪嘴的肖恩

<head> <tr> <td>xh002</td> <td>刘小芳</td> <td> <a onclick="del(this)" href="javascript:;">删除</a> </td> </tr> </tbody> </table> 这是火狐浏览器firebug工具下的代码; 我想是不是隔了</tbody>这个标签,所以参考代码用tbody这个相对于tr外一层的标签来移除tr下的内容
2016-01-19 回复 有任何疑惑可以回复我~

由于你没给出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>



0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

删除方法中的lastChild

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信