此代码用于在图片(交通灯)之间切换,然后再次返回到开始状态。第一张图片工作正常,但其他图片不会出现。
<head>
<img id="red" src="A452 Images/red light.png" width="255" height="300" />
<button onclick="fnnextimage()">change image</button>
</head>
<body>
<script>
var imgarray=[];
imgarray[0].src = "A452 Images/red traffic light.png";
imgarray[1].src = "A452 Images/yellow traffic light.png";
imgarray[2].src = "A452 Images/green traffic light.png";
function fnnextimage(){
var lightchange = 1;
lightchange = lightchange+1;
if(lightchange=3){
lightchange=1};
document.getElementById('red').src=imgarray[fnnextimage]
}
</script>
</body>
</html>
答案 0 :(得分:3)
您的代码包含三个错误:
map.get(Apple.class) == map.get(GreenApple.class);
应该是一个全局变量,因此您需要在函数上方声明它(与lightchange
一样):
imgarray
var imgarray=[];
imgarray[0].src = "A452 Images/red traffic light.png";
imgarray[1].src = "A452 Images/yellow traffic light.png";
imgarray[2].src = "A452 Images/green traffic light.png";
var lightchange = 1;
function fnnextimage(){
应为if(lightchange=3){
。使用if(lightchange == 3) {
进行分配,使用=
进行相等检查。
您不能将函数用作数组索引:==
应为imgarray[fnnextimage]
(数组索引从零开始)。
总之,这应该有效:
imgarray[lightchange - 1]
答案 1 :(得分:0)
问题是wamp
---www
---my_project
---assets
--- js
---uploads
---tinymce
不是全局变量。要解决此问题,请执行以下操作:
var lightchange
答案 2 :(得分:0)
在fnnextimage
函数中,lightchange
首先设置为1
,然后递增(至2
)。每次执行该函数时,其值都会相同。
(提示:如果某个功能没有达到您的预期效果,console.log(variableName)
可以快速查看variableName
在任何指定时间内的内容。[&#39;}比在SO上询问问题更快的调试方式。)
当代码尝试比较if(lightchange=3)
时,它实际上设置值,而不是评估值。 Use ==
in conditionals.
imgarray[fnnextimage]
正在尝试使用不存在的变量fnnextimage
访问索引 - 这是一个函数名,而不是变量名。