我写了一段代码,可是它并不执行,不知道错在哪
//图片循环显示
function tim(){
var im1=document.getElementById("imag").getElementsByTagName("img");
for(i=0;i<im1.length;i++)
{
var im11=im1[i];
//im1.style.display="block";
setTimeout("function(){im11.style.display="block";}",3000);
}
}html代码:
<div id="imag"><img src="image/01.jpg" id="dv1"/>
<img src="image/02.jpg" id="dv2" style="display:none"/>
<img src="image/03.jpg" id="dv3" style="display:none"/>
<img src="image/04.jpg" id="dv4" style="display:none" /> </div>
//图片循环显示
function tim(){
var im1=document.getElementById("imag").getElementsByTagName("img");
for(i=0;i<im1.length;i++)
{
var im11=im1[i];
//im1.style.display="block";
setTimeout("function(){im11.style.display="block";}",3000);
}
}html代码:
<div id="imag"><img src="image/01.jpg" id="dv1"/>
<img src="image/02.jpg" id="dv2" style="display:none"/>
<img src="image/03.jpg" id="dv3" style="display:none"/>
<img src="image/04.jpg" id="dv4" style="display:none" /> </div>
setTimeout()的第一个参数,要么直接传一个function不加引号,要么传一个字符串。字符串内部注意引号转义。
另外逻辑也很混乱,都三秒钟后显示?setTimeout不会堵塞的。参考如下代码:
<html>
<body>
<div id="imag">
<img src="http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/onion/1.gif" id="dv1"/>
<img src="http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/onion/2.gif" id="dv2" style="display:none"/>
<img src="http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/onion/3.gif" id="dv3" style="display:none"/>
<img src="http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/onion/4.gif" id="dv4" style="display:none" />
</div>
<script>
(function() {
var images = document.getElementById("imag").getElementsByTagName("img");
var index = 1, lastIndex = 0;
setInterval(function() {
images[lastIndex].style.display = "none";
images[index].style.display = "block";
lastIndex = index;
index = (index + 1) % images.length;
}, 3000);
})();
</script>
</body>
</html>注意排版和命名,要养成良好的编程习惯,美观整洁即可读性很重要代码是给人看的。