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

.getElementById('table').lastChild;

为什么参考代码中 

var tbody = document.getElementById('table').lastChild;

会有  .lastChild  ? 

自己摸索了一下是浏览器给table加了tbody 节点的原因吗?

正在回答

2 回答

哦哦,好像懂了点

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

不知道你在说什么...

这段代码是给tbody赋值,

在9-22中table标签的id也是table(<table border="1" width="50%" id="table">),

tbody的子节点有tr元素节点和空的节点,

var tbody = document.getElementById('table').lastChild;就是table最后一个子节点。


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

qq_野崎梅太郎_0

为什么要返回最后一个子节点呀,不明白
2017-08-24 回复 有任何疑惑可以回复我~
#2

慕圣9424722 回复 qq_野崎梅太郎_0

他没有贴代码,我的理解是table最后一个子节点应该是空白,然后 tbody.appendChild(tr),将tr增加到此空白节点里
2017-08-25 回复 有任何疑惑可以回复我~
#3

qq_野崎梅太郎_0 回复 慕圣9424722

哦哦,好像懂了点
2017-08-28 回复 有任何疑惑可以回复我~
#4

慕圣9424722 回复 qq_野崎梅太郎_0

哈哈,我开始是这么理解的,但是后来发现第一次添加tr后,table最后一个子节点将会是此tr,而不是空白了,我甚至用编译器试了下将第一次后添加了tr后的代码从浏览器上复制下来,确实如此,然而再次添加,任然有效,所以...我应该搞错了,只能等高人来回答了~
2017-08-28 回复 有任何疑惑可以回复我~
#5

qq_野崎梅太郎_0 回复 慕圣9424722

哦哦~
2017-08-29 回复 有任何疑惑可以回复我~
#6

qq_与赠_03193390 回复 qq_野崎梅太郎_0

因为要在最后一个子节点后添加新的子节点<tr>,所以要先得到最后一个元素tbody才能调用appendChild()函数
2017-09-17 回复 有任何疑惑可以回复我~
#7

web_bin

function deleteRow(obj){ var tbody = document.getElementById('table').lastChild; var tr = obj.parentNode.parentNode; tbody.removeChild(tr); 这个代码中为什么还要获得lastChild,如果要删除,父级节点应该是table节点啊,为什么还要用lastChild,获得最后一个tr?
2018-05-18 回复 有任何疑惑可以回复我~
查看4条回复

举报

0/150
提交
取消

.getElementById('table').lastChild;

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