在JavaScript中定期更改图像

时间:2014-07-21 01:32:17

标签: javascript html

所以基本上我想每5秒更换一次图像,所以我写了下面的Javascript代码并将其标记为html。但控制台一直说“此页面上没有javaScript”,代码不适用

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>JavaScript for Programmers</title>
    </head>
    <body>
        <h2>Mood Change</h2>
        <p>The mood of this web page changes every 5 seconds.</p>
        <p><img id="mood" src="frown.gif" alt="mood"></p>
        <script async src="../scripts/moody.js"></scripts>
    </body>
</html>

  var images=[]
  images[0]="smile.gif";
  images[1]="frown.gif";
  var myMood= document.getElementById("mood");
  function change(){
    if(myMood==images[0]){
      myMood.src=images[1];
    }
    else if(myMood.src==imgaes[1]){
      myMood.src=images[0];
    }
 }

 setInterval(change,5000);      

2 个答案:

答案 0 :(得分:2)

</scripts>应为</script>

此外,您的JS可能如下所示:http://jsbin.com/nawono/2/edit

var myMood= document.getElementById("mood");
var images=[
    "smile.gif",
    "frown.gif"
];

function change(){
    myMood.src= images.reverse()[0];
}

setInterval(change,5000); 

啊,为了解释images.reverse()[0];,它会反转数组顺序,我们总是取出0索引键。非常好

答案 1 :(得分:0)

您的代码不起作用的原因是您的比较是适当的。你在哪里:

var images=[]
  images[0]="smile.gif";
  images[1]="frown.gif";
  var myMood= document.getElementById("mood");

  function change(){
    if (myMood == images[0]) {

然后 myMood 是一个DOM元素, images [0] 是一个字符串。这两个永远不会相等(除非DOM元素的 toString 方法产生完全相同的字符串)。

你可能意味着:

    if (myMood.src == images[0]) {

以便比较两个更可能相同的字符串。