2 xu dragon xu_dragon 于 2015.07.23 16:48 提问

删除子元素的一个小问题

我想要删除某个父元素下的某一类子元素:如下程序:
<!doctype html>



删除子元素
<br> .box{border:1px solid red;width:150px;height:150px;float:left;margin:20px 10px 0 20px;}<br>



删除box

function dele(){ var parent=document.getElementById("wrap"); var box=document.getElementsByClassName("box"); alert(box.length); //明明是三怎么只能删除两个盒子 for(var i=0;i<box.length;i++){ console.log(i); parent.removeChild(box[i]); } }



本来应该三个box都删除,可就是只能删除两个,这是什么样原因呢,弄了我一下午了,纠结,求解!谢谢

3个回答

lengmeiyanok
lengmeiyanok   2015.07.23 22:17

图片说明
刚在chrome中调试了,当删除一个box,box对象会减小一个, var box = document.getElementsByClassName("box"); box是对元素的引用,所以少
删除一个

代码修改成如下就可以:
function dele(){
var parent=document.getElementById("wrap");
var box=document.getElementsByClassName("box"); alert(box.length); //明明是三怎么只能删除两个盒子
/*for(var i=0;i<box.length;i++){
console.log(i); parent.removeChild(box[i]);
}*/
while(box[0]){
parent.removeChild(box[0]);
}
};

xu_dragon
xu_dragon 非常感谢!
2 年多之前 回复
u013080862
u013080862   2015.07.23 16:56

javascript数组索引是以1开头

u013080862
u013080862 解决方式:http://wangpfsir.blog.163.com/blog/static/67963727201043002658424/
2 年多之前 回复
u013080862
u013080862 回复m2582: 嗯,搞错了;
2 年多之前 回复
m2582
m2582 数组索引是以0开始的吧
2 年多之前 回复
cuiwei1026522829
cuiwei1026522829   Ds   Rxr 2015.07.24 00:48

删除的时候,记得脚标是从0开始的

Csdn user default icon
上传中...
上传图片
插入图片