小白求助 js for循环问题 为什么点击a2的delete会将a3删除呢 详细看视频
发布网友
发布时间:2022-04-22 13:37
我来回答
共2个回答
热心网友
时间:2022-04-22 15:06
这是因为,一开始dels里面是3个元素,删除了第1个元素(a1)后,原来的第2个元素(a2)就变成了第1个,原来的第3个元素(a3)则变成第2个。这样的话,当你点击a2时(此时j=1也就是对应第2个元素),实际删除的就是a3(因为它才是第2个)了。
解决的办法其实很简单,就是不要依赖dels,因为任何删除操作都会动态改变dels中元素的个数以及顺序,而你的for循环中的循环变量i却是固定不变的(换句话说就是如果某个元素删除了,i就和dels中的实际元素对不上号了)。正确的做法是尽量利用this对象:
var tr = dels[j].parentNode.parentNode;
改为
var tr = this.parentNode.parentNode;
试试看!
热心网友
时间:2022-04-22 16:24
如果删除成功以后没有重新调用for循环就建议你在点击事件内打印一下dels的值