Javascript 定时幻灯片的语句问题。

<script>
    var arr =new Array();
    arr[0] = "imgs/1.jpg";
    arr[1] = "imgs/2.jpg";
    arr[2] = "imgs/3.jpg";
    arr[3] = "imgs/4.jpg";
    var num = 0;
    var imgid = document.getElementById("lb");
    
    function lb(){
        
        if(num == arr.length-1){
            num = 0;    
        }else{
            num++;
            imgid.setAttribute("src",arr[num]);    
        }
    }
    
    setInterval(lb,3000)
</script>

我像上面这样把var imgid = document.getElementById("lb");放在函数外面幻灯片就没用,不会定时切换,可是把var imgid = document.getElementById("lb");放在函数里面,就有用了,初学javascript,这是为什么呢? 函数内不是可以调用全局的变量吗?

阅读 2.9k
2 个回答

其实并没有发现错误。。以下代码可以成功运行。

<script>
    var arr =new Array();
    arr[0] = "../tiny heart/src/babyFade16.png";
    arr[1] = "../tiny heart/src/babyFade17.png";
    arr[2] = "../tiny heart/src/babyFade18.png";
    arr[3] = "../tiny heart/src/babyFade19.png";
    var num = 0;
    var imgid = document.getElementById("lb");
    
    function lb(){
        
        if(num == arr.length-1){
            num = 0;    
        }else{
            num++;
            imgid.setAttribute("src",arr[num]);    
        }
    }
    
    setInterval(lb,3000);
</script>    

imgid放在里面还是外面没有关系的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题