javascript - 为什么我不能在函数中使用局部变量?
问题描述
我有一个关于 setTimeout 的问题,我的代码如下:
<script type="text/javascript">
var s =-1;
setImage();
function setImage(){
var img=new Array();
var url=new Array();
img[0]="images/oak.gif";url[0]="http://oakland.athletics.mlb.com/";
img[1]="images/was.gif";url[1]="http://washington.nationals.mlb.com/";
img[2]="images/chc.gif";url[2]="http://chicago.cubs.mlb.com/";
img[3]="images/sd.gif";url[3]="http://sandiego.padres.mlb.com/";
s+=1;
if(s>=img.length){
s==0;
};
document.getElementById("imgsrc").src=img[s];
document.getElementById("imghref").href=url[s];
setTimeout(setImage,1000);
};
</script>
我很困惑为什么我不能改变var s=-1
,function setImage()
比如:
**var s=-1**
s+=1;
if(s>=img.length){
s==0;
};
该功能不起作用。我认为问题出在全局和局部变量上,但我没有清晰的看法。
代码结果将是
var s =-1;
setImage();
function setImage(){
var img=new Array();
var url=new Array();
img[0]="https://imgur.com/sfAyT6s.gif";url[0]="http://oakland.athletics.mlb.com/";
img[1]="https://imgur.com/av5hb4a.gif";url[1]="http://washington.nationals.mlb.com/";
img[2]="https://i.imgur.com/zGKLMPh.gif";url[2]="http://chicago.cubs.mlb.com/";
img[3]="https://i.imgur.com/ZBXTL5s.gif";url[3]="http://sandiego.padres.mlb.com/";
s+=1;
if(s>=img.length){
s=0;
};
document.getElementById("imgsrc").src=img[s];
document.getElementById("imghref").href=url[s];
setTimeout(setImage,1000);
};
...
<div>
<a id="imghref" href="http://chicago.cubs.mlb.com/">
<img id="imgsrc" src="images/chc.gif">
</a>
</div>
...
解决方案
在你的if
陈述中,你写道s==0
。==
运算符是比较运算符。它在问“s
等于0?” 如果您的意图是设置s
为零,请改写s=0
。
推荐阅读
- python - 从不同文件夹中的文件导入函数的最简单方法
- python - 无法在 jupyter 中导入已安装的包
- angular - 将角度 9 更新为 10
- ruby-on-rails - Rails Activerecord 从文本迁移到整数[]
- r - 对各种迭代应用贝叶斯模型 (JAGS)
- swiftui - SwiftUI 暂停/恢复旋转动画
- java - 呈现类似于 iOS 13 演示的 Android Activity?
- flutter - Flutter中LinearPercentIndicator的不同progressColor
- python - 我的 twilio 消息已发送,但我没有看到该消息
- powerbi - Power BI - Power Query 编辑器:删除所有重复项(不要留下任何属于重复项的行)