以下是HTML代码片段
<body onload="ReImgSize()">
<img src="DSCF5505.jpg" name="showpic"><img>
<img src="DSCF5505.jpg" name="showpic"><img>现有3个同样的JS函数如下,功能是当图片宽度超过550像素时设置为550像素.ReImgSize1在所有情况下正常工作,ReImgSize2在IE里无效,ReImgSize3在FF里无效
这是什么原因?for(in) 和传统的 for循环在这里出现了差异,请问什么情况下会出现这种问题?拜谢!function ReImgSize1(){ var pic = document.getElementsByName("showpic");
for(var i=0;i<pic.length;i++){
if(pic[i].width>550) pic[i].width="550";
}
}
function ReImgSize2(){ var pic = document.getElementsByName("showpic");
for(var i in pic){
if(pic[i].width>550) pic[i].width="550";
}
}
function ReImgSize3(){
var pic = document.getElementsByName("showpic");
for(var i in pic){
if(i=="showpic"){
for(var j=0;j<pic[i].length;j++){
if(pic[i][j].width>550) pic[i][j].width="550";
}
}
}
}
<body onload="ReImgSize()">
<img src="DSCF5505.jpg" name="showpic"><img>
<img src="DSCF5505.jpg" name="showpic"><img>现有3个同样的JS函数如下,功能是当图片宽度超过550像素时设置为550像素.ReImgSize1在所有情况下正常工作,ReImgSize2在IE里无效,ReImgSize3在FF里无效
这是什么原因?for(in) 和传统的 for循环在这里出现了差异,请问什么情况下会出现这种问题?拜谢!function ReImgSize1(){ var pic = document.getElementsByName("showpic");
for(var i=0;i<pic.length;i++){
if(pic[i].width>550) pic[i].width="550";
}
}
function ReImgSize2(){ var pic = document.getElementsByName("showpic");
for(var i in pic){
if(pic[i].width>550) pic[i].width="550";
}
}
function ReImgSize3(){
var pic = document.getElementsByName("showpic");
for(var i in pic){
if(i=="showpic"){
for(var j=0;j<pic[i].length;j++){
if(pic[i][j].width>550) pic[i][j].width="550";
}
}
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货