这个作业的删除函数,我原来是这么写的(鼠标移动到某一行,该行的背景色会变,所以通过判断背景色来确定哪一行是要删除的):
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呢?
评论里有人说了,table的子节点有一个是tbody,tbody的子节点才是tr
2333