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

9-22练习:删除函数

function removeEle(){
   var t=document.getElementsByTagName('tbody')[0];
   var as=document.getElementsByTagName('a');
   for(var i=0;i<as.length;i++){
       as[i].onclick=function(e){
           console.log(this.parentNode);
           t.removeChild(this.parentNode.parentNode);
       }
   }
}

<td><a href="javascript:;" onclick='removeEle()'>删除</a></td>

为什么第一次点击的时候没有执行删除函数,点击第二次及以后就可以

正在回答

3 回答

你点击添加一行的时候,多了一行,就是多了一个a,这个a是动态添加的,你的删除函数里面获取到的a是之前就存在的,之前才有2个a(索引值是0和1),动态添加的那个删除按钮的索引值是2,这时候他身上并没有点击事件,然而你点击过后,运行了removeEle函数,这时候获取到了新的a,就变成了3个,动态添加的a就有了点击事件,所以点第二次的时候就成了。

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

我说的不清楚,你就当一个提示吧

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

as.length的值是变化的,for每执行一次as.length的值就减一,而i值在增加,这样每次第一个数也就是数组[0]是变动的,也就造成无法一次删除,具体执行流程及原因你再琢磨一下看看。

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

举报

0/150
提交
取消

9-22练习:删除函数

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