新手关于JS,for循环只有一次执行效果

如图,这段代码先显示了三次alert(),然后只看到一次fadeOut()动画就停止,请问是哪里出错的了?

 function nextImg(){
    var arr = new Array();
    arr[0] = $("#img1");
    arr[1] = $("#img2");
    arr[2] = $("#img3");
    for(i=0;i<3;i++){
        arr[0].fadeIn(1000);
        alert(i);
        setTimeout(2000);
        arr[0].fadeOut(1000);
    }
    alert("end");

}

js里的延迟都是从js运行开始计算,也就是说
$("#img1").fadeIn(1000);
$("#img2").fadeIn(1000);
$("#img3").fadeIn(1000);
都是一秒之后同时开始fadeIn,造成最上面图片遮住下面的,产生只有一张图的错觉

http://zhidao.baidu.com/link?url=s8cwBsVdK598Ay9MBktkT5JUvmS-BcXPnfg-qV1kLWUrT0egK4OKGJMtxpuYhv6e2tD4eGUosq9fTEp50-SmhIwO3dQoWc-d4DVBtVhA-aS

没有问题啊,img1淡入淡出各3次。。你是要控制img2,img3的话你的arr[0]要改为arr[i]

 <img src="http://avatar.csdn.net/B/0/E/2_qq342063618.jpg" id="img1" />
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.2.min.js"></script>
<script>
    function nextImg() {
        var arr = new Array();
        arr[0] = $("#img1");
        arr[1] = $("#img2");
        arr[2] = $("#img3");
        for (i = 0; i < 3; i++) {
            arr[0].fadeIn(1000);
            alert(i);
            setTimeout(2000);
            arr[0].fadeOut(1000);
        }
        alert("end");

    }
</script>