js奇怪的问题?!

来源:百度知道 编辑:UC知道 时间:2024/06/21 20:33:44
function getFace(model)
{
var piclength;

switch(model)
{
case 0:
piclength=30;
break;
case 30:
piclength=60;
break;
case 60:
piclength=90;
break;
default:
return;
}
var imgs=$("imgspace").getElementsByTagName("img");
if(!imgs)return;
for(var i=0;i<imgs.length;i++)
{
$("imgspace").removeChild(imgs[i]);
}
while(model<piclength)
{
var img=document.createElement("img");
img.src="images/qqimg/"+model+".gif";
img.style.cursor='hand';
img.onclick=function(){alert();}
$("imgspace").appendChild(img);
model++;
}
}
====================================
这段代码有没有什么问题, 我总是在删除元素的时候执行到一半就跳出循环了 好奇

你在删除对象的时候整个数组的长度会随着对象的移除而减少,你可以把$("imgspace").removeChild(imgs[i]); 改为$("imgspace").removeChild(imgs[0]); 即每次都移出当前数组的第一个元素,这样便不会出现问题了

你每次执行一次删除后,数组里面的元素发生变化后,它的length属性值也会发生变化的.试试循环的时候i的顺序改为从大到小..