数组元素(虽然下面获得的不是一个数组,只是一个集合,但是也成利)是对象时,当销毁这个对象,则数组自动把它从数组中去掉,同时数组长度减为1,不同于delete ,delete一个数组元素,则这个数组元素所在的位依然在,数组长度不变。
[img]http://dl2.iteye.com/upload/attachment/0109/6211/482528ee-c4cc-3308-a665-92efd528be6a.png[/img]
举个列子,当body中有很多个span元素时,现在把这些元素从dom树中删除。
[img]http://dl2.iteye.com/upload/attachment/0109/6215/88228f86-1d25-3a43-abf5-d7441266c938.png[/img]
[img]http://dl2.iteye.com/upload/attachment/0109/6211/482528ee-c4cc-3308-a665-92efd528be6a.png[/img]
举个列子,当body中有很多个span元素时,现在把这些元素从dom树中删除。
[img]http://dl2.iteye.com/upload/attachment/0109/6215/88228f86-1d25-3a43-abf5-d7441266c938.png[/img]
var spanlist=document.getElementsByTagName('span');
//假如下面的删除代码段写成这样的形式:for(var i=0;i<spanlist.length;i++){ document.body.removeChild(spanlist[i])},那么会发现,只删除了一半元素,这是为什么呢?如开篇所说,删除第一个span后,spanlist动态更新,长度变为原始长度-1,而下一个i指向的是第1个元素(不是spanlist[0]),所以把spanlist[0]给漏掉了。所以最后只删掉了一半。
while(spanlist.length!=0){
document.body.removeChild(spanlist[0])
}
本文探讨了在JavaScript中,当数组元素作为DOM元素引用时,删除DOM元素如何影响数组引用,并通过实例解释了数组元素动态更新导致的删除错误。详细介绍了数组元素在数组中的动态行为和如何正确地遍历DOM元素以避免此类问题。
585

被折叠的 条评论
为什么被折叠?



