我已经使用set interval函数来完成这个代码。
<img src="red.jpg" id="traffic" width="155" height="198">
<script>
var imgarray = ["red.jpg", "redandorange.jpg", "green.jpg", "orange.jpg"]
document.getElementById("traffic").innerHTML = traffic;
setInterval(function () {
ChangeLights() ;
}, 2000) ;
function ChangeLights() {
if (traffic.src.match(imgarray[0])){
traffic.src = imgarray[1];
}else if (traffic.src.match(imgarray[1])){
traffic.src = imgarray[2];
}else if (traffic.src.match(imgarray[2])){
traffic.src = imgarray[3];
}else if (traffic.src.match(imgarray[3])){
traffic.src = imgarray[0];
}}
如果没有所有的if语句,有没有办法呢?
答案 0 :(得分:4)
您可以将ChangeLights()
功能替换为:
function ChangeLights() {
traffic.src = imgArray[imgArray.indexOf(trafficSrc) + 1 % imgArray.length];
}
答案 1 :(得分:1)
var idx = 0;
function ChangeLights() {
idx++;
if (idx > 2)
idx = 0;
traffic.src = imgarray[idx];
}
答案 2 :(得分:1)
您的代码归结为此
var i = 0;
setInterval(ChangeLights, 2000);
function ChangeLights() {
i = i < imgarray.length - 1 ? i + 1 : 0;
traffic.src = imgarray[i];
}
答案 3 :(得分:0)
是的。
类似的东西:
for(var i = 0; i<imgarray.length; i++){
if(traffic.src.match(imgarray[i])) {
if(i+1 === traffic.length) {
traffic.src = imgarray[0];
} else {
traffic.src = imgarray[i+1];
}
break;
}
}