2016-11-22 36 views
-1

我需要一个每3秒更换一张图片的功能。这里是我的代码,它必须使用case结构,不知道最新错误,有什么建议吗?每3秒更换一张图片的功能

<script> 
"use strict"; 
    var currentImage = 1; 
    var autoAdvance = setInterval(ChangeAd, 3000); 

    function ChangeAd() { 
    var image = document.getElementsByTagName"img"); 
    switch(currentImage){ 
     case 1: 
      currentImage = 2; 
      return image[o].src = "concert2.gif"; 
      break; 
     case 2: 
      currentImage = 3; 
      return image[o].src = "concert3.gif"; 
      break; 
     case 3: 
      currentImage = 4; 
      return image[o].src = "concert4.gif"; 
      break; 
     case 4: 
      currentImage = 5; 
      return image[o].src = "concert5.gif"; 
      break; 
     case 5: 
      currentImage = 1; 
      return image[o].src = "concert1.gif"; 
      break; 
    } 

    } 
</script> 
+2

document.getElementsByTagName “IMG”); = document.getElementsByTagName(“img”); – baao

+2

'[o]' - 它是什么?你是不是指'[0]' –

+0

@baao我在问我的老师,我不知道她是否意味着它是一个数字,如果它是空的,或者我需要0-4,它会工作吗? – Alex204

回答

1

首先,这样的:

document.getElementsByTagName"img") 

应该是这样的:

document.getElementsByTagName("img") 

二:image[o].src使用字母o,应使用数字0

三,case分支机构不需要回报什么。他们只需要设置价值计数器。使用return有两个原因。首先是简单地退出该功能并将控制权返回给调用者。在你的情况下,break陈述已经这样做,所以return没有帮助。使用return的第二个原因是使函数返回调用者的整体结果。这并不是你在这之后所做的 - - 你不想从函数返回一个值,你只是想让函数更新图像的来源。

第四,不需要重复设置图像源。只需将变量设置为正确的值,然后更改switch以外的源。

"use strict"; 
 
    var currentImage = 1; 
 
    var autoAdvance = setInterval(ChangeAd, 3000); 
 
    var image = document.getElementsByTagName("img"); 
 
    var source = ""; 
 

 
    function ChangeAd() { 
 
    switch(currentImage){ 
 
     case 1: 
 
      currentImage = 2; 
 
      break; 
 
     case 2: 
 
      currentImage = 3;  
 
      break; 
 
     case 3: 
 
      currentImage = 4;   
 
      break; 
 
     case 4: 
 
      currentImage = 5;  
 
      break; 
 
     case 5: 
 
      currentImage = 1;  
 
      break; 
 
    } 
 
    
 
    // Once you break out of the matched case branch, 
 
    // you'll wind up here and all you need to do is 
 
    // use the value of your counter to set up the image: 
 
    source = "concert" + currentImage + ".gif"; 
 
    image[0].src = source; 
 
    image[0].alt = source; 
 
    }
<img src="someimg.jpg" alt="some image">

+0

第五,完全摆脱开关块,只是增加变量(使用“if”或“%'以允许5-> 1的情况)... – nnnnnn

+0

@nnnnnn是的,但如果你读了OP,面临的挑战是使用“switch”。 –