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

关于removeChild()的问题

这个作业的删除函数,我原来是这么写的(鼠标移动到某一行,该行的背景色会变,所以通过判断背景色来确定哪一行是要删除的):

function deltr(){
  var td=document.getElementById("table");
  var tr=document.getElementsByTagName("tr");
  for(i=0;i<tr.length;i++){
   if(tr[i].style.backgroundColor=="red"){
   td.removeChild(tr[i]);
   }

 }

 }

我在测试的时候,不知道为什么,这样写td.removeChild(tr[i]);,原有的那两行删不掉,删新添加的可以;

后来查资料换成这样写: tr[i].parentNode.removeChild(tr[i]);就可以删掉前两行了

这是为什么呢?在table里,tr的父节点只能是table,我通过document.getElementById的方式获取到table,直接removeChild为什么删不掉body里不是新建的tr呢?

正在回答

2 回答

评论里有人说了,table的子节点有一个是tbody,tbody的子节点才是tr

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

慕神600158 提问者

tbody这个节点在不写的情况下也是存在的是么?(我的完整代码里没写tbody)
2017-10-30 回复 有任何疑惑可以回复我~
#2

慕神600158 提问者 回复 DeppSparrow

哦哦,原来如此!Thanks~
2017-11-06 回复 有任何疑惑可以回复我~

2333

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

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468061    人
  • 解答问题       21891    个

本课程从如何插入JS代码开始,带您进入网页动态交互世界

进入课程

关于removeChild()的问题

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