谁能告诉我为什么以下代码可能不会循环遍历此处定义的颜色数组:
var colors = ["white", "yellow", "orange", "red"];
这是有问题的代码行:
setInterval(function(){
currElm.style.background = colors[(nextColor++)%(colors.length)]);
}, 500);
看起来这应该可行,我已经看到了几个例子,其中的代码就像这样产生了颜色循环效果。有人看到上面(或下面)代码有问题吗?
整个功能(正在进行中):
function setHighlight(elmId, index, songLength){
//alert("called set highlight, params are " + elmId + " " + index + " " + songLength);
var colors = ["white", "yellow", "orange", "red"];
var nextColor = 0;
if(index < 10)
index = "000" + (index);
else if (index < 100)
index = "000" + (index);
else if(index < 1000)
index = "0" + (index);
if(index >= 1000)
index = index;
//alert("called set highlight, params are " + elmId + " " + index + " " + songLength);
//this will be useful for finding the element but pulsate will not work, need to research animations in javascript
var mainElm = document.getElementById('active_playlist');
var elmIndex = "";
for(var currElm = mainElm.firstChild; currElm !== null; currElm = currElm.nextSibling){
if(currElm.nodeType === 1){
var elementId = currElm.getAttribute("id");
if(elementId.match(/\b\d{4}/)){
elmIndex = elementId.substr(0,4);
alert(currElm.getAttribute('id'));
if(elmIndex == index){
setInterval(function(){
currElm.style.background = colors[(nextColor++)%(colors.length)]);
}, 500);
}
}
}
}//end for
}
非常感谢所有帮助。谢谢