为了账号安全,请及时绑定邮箱和手机立即绑定

菜鸟求助!setInterval执行函数的时候最后一次执行为什么不能执行完成函数的全部代码?

菜鸟求助!setInterval执行函数的时候最后一次执行为什么不能执行完成函数的全部代码?

ItsCHAMPIO 2017-07-25 10:44:50
setInterval('changeColor()',300); var arr = document.getElementsByTagName('li'); var i = 0; var j = i-1; var count = 0; function changeColor(){ count++; arr[i++].style.backgroundColor="yellow"; if(j >= 0){ arr[j].style.backgroundColor = "white"; } j++; } arr[29].style.background="white"; 这是我写的代码,效果就是本来背景为蓝色的30个方块,每一个方块先变为黄色,然后变为白色,但是现在最后一个方块只显示黄色而不能变成白色,求助各位大神!
查看完整描述

3 回答

已采纳
?
FSYu

TA贡献152条经验 获得超59个赞


        setInterval('changeColor()', 300);
	var arr = document.getElementsByTagName('li');
	var i = 0;
	var j = i - 1;
	var count = 0;

	function changeColor() {
	    count++;
	    if(i >= 29) i=29;
	    if(j >= 29) j=29;
	    arr[i++].style.backgroundColor = "yellow";
	    if(j >= 0) {
		arr[j].style.backgroundColor = "white";
	    }
	    j++;
        }

i超过29就会出现错误,无法向下进行了,要加条件语句控制一下,最好在j的if语句里把定时器清除了,定时器一直运行对页面也是有影响的。


查看完整回答
反对 回复 2017-07-25
  • ItsCHAMPIO
    ItsCHAMPIO
    万分感谢!!!!我的问题解决了!!!!真的很感谢!
  • FSYu
    FSYu
    我也是菜鸟,共同进步,下次出现错误你可以先看一下控制台的报错
  • ItsCHAMPIO
    ItsCHAMPIO
    嗯嗯!一起进步!
点击展开后面3
?
__innocence

TA贡献313条经验 获得超208个赞

最后一行不是backgroundColor吗吗吗吗?

查看完整回答
反对 回复 2017-07-25
  • 3 回答
  • 0 关注
  • 2097 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信