关于js循环执行removeChild 只移除其中一部分的问题 5
for(vari=0;i<xxx.length;i++){if(xxx[i].className=="xxxxxx"){xxxx.removeChild(xxx[i]);...
for(var i=0;i<xxx.length;i++){
if(xxx[i].className=="xxxxxx"){
xxxx.removeChild(xxx[i]);
}
}
这样只会移除一半,这个问题怎么解决啊 展开
if(xxx[i].className=="xxxxxx"){
xxxx.removeChild(xxx[i]);
}
}
这样只会移除一半,这个问题怎么解决啊 展开
展开全部
这个问题一般是疏忽的问题,通过getElementsByName获取到的是一个集合,而你循环删除的时候,耐橘首把第一个元素,也就是obj[0]删除了之后,它后面的另一个昌数元素会位置提升到第一个,这时候,循环过来之后,删除第2个元素obj[1],而这个元素已经实际的位置成了obj[0]所以他就找不到了,所以,循环应该这么写
例子:
<script type="text/javascript">function del(){ var obj = document.getElementsByName("GoodsBrowsed"); for(var i = obj.length-1;i>=0;i--){ obj[i].parentNode.removeChild(obj[i]); }}</script>来源:伍岁网页链接
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询