Javascript代码是错误的我不'我不知道为什么

Javascript code is wrong i don't know why

本文关键字:我不知道 为什么 代码 错误 Javascript      更新时间:2023-09-26

为什么这个代码不能工作?我尝试每4秒更改一个图像。。。我真的不明白,一切都应该正常。

<!DOCTYPE html>
<html>
<head>
<script type='text/javascript'>
function Falcon0408()
{
document.getElementByTagName('img');

if (document.getElementByTagName('img').src='img1.png')
{
document.getElementByTagName('img').src='img2.png';
}


else if (document.getElementByTagName('img').src='img2.png')
{
document.getElementByTagName('img').src='img3.png';
}
else if (document.getElementByTagName('img').src='img3')
{
document.getElementByTagName('img').src='img1.png';
}
}
</script>
</head>
<body>
<script>
setTimeout(Falcon0408(),400);
</script>
<img src='img.png'/>

</body>
</html>
  1. 它是getElementsByTagName——"elements"是复数,因为你得到了所有带有该标签的元素
  2. 您使用的是赋值运算符=,而不是比较运算符=====
  3. HTML中的实际图像源只是"img.png",因此它永远不会匹配任何"if"语句
  4. 这不是一个错误,而是一个提示:"不要重复自己。"获取图像的属性一次,并将其存储在一个变量中,然后对照该变量进行检查
  5. 给你的图像标签一个唯一的ID,这样你就可以直接用getElementById瞄准它(注意它是"ID"而不是"ID")。如果页面上有多个img标签怎么办?你可能不希望所有这些都改变

代码:

<img id="myImg" src="img1.png"/>
function Falcon0408()
{
    var image = document.getElementById('myImg');
    if (image.src === 'img1.png')
   {
       image.src = 'img2.png';
   }
   else if (image.src === 'img2.png')
   {
       image.src='img3.png';
   }
   else if (image.src === 'img3')
   {
      image.src='img1.png';
   }
}
  1. 当你想循环浏览20或1000张图像时,你会怎么做?你会继续添加if/else块吗

一个更好的方法是有一个图像阵列(或者只知道文件夹中有多少照片),并使用循环根据阵列中的图像数量更改来源。这样,您就不必每次添加新图像时都不断添加else/if语句。。。但这超出了这个问题的范围。

  1. 如果你想让它循环,这是行不通的。关于如何使用setInterval(),或者如何在函数中包含对setTimeout()的另一个调用以使其继续运行,请参阅以下答案