关于removeChild()的问题

来源:9-22 编程练习

慕神600158

2017-09-22 13:12

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

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回答

  • DeppSparrow
    2017-10-16 23:58:58
    已采纳

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

    慕神6001... 回复DeppSp...

    哦哦,原来如此!Thanks~

    2017-11-06 11:23:31

    共 3 条回复 >

  • ilocks
    2017-09-27 21:39:08

    2333

JavaScript进阶篇

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

468194 学习 · 21891 问题

查看课程

相似问题