首页 > 解决方案 > 为什么我不能在函数中使用局部变量?

问题描述

我有一个关于 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=-1function 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>
	...

标签: javascript

解决方案


在你的if陈述中,你写道s==0==运算符是比较运算符。它在问“s等于0?” 如果您的意图是设置s为零,请改写s=0


推荐阅读