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

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个方块,每一个方块先变为黄色,然后变为白色,但是现在最后一个方块只显示黄色而不能变成白色,求助各位大神!

ItsCHAMPIO
浏览 2098回答 3
3回答

FSYu

        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语句里把定时器清除了,定时器一直运行对页面也是有影响的。

__innocence

最后一行不是backgroundColor吗吗吗吗?
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript