Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
数组部分JavaScript?_Javascript_Html_Arrays_Loops_Selection - Fatal编程技术网

数组部分JavaScript?

数组部分JavaScript?,javascript,html,arrays,loops,selection,Javascript,Html,Arrays,Loops,Selection,我有一个按钮,然后当点击运行这个功能,并希望改变我的html中有ID和循环的元素,并按顺序这样做,我不确定为什么我不能这样做!(必须使用数组来执行此操作,请记住,执行此操作的其他方法可能会有所帮助) 感谢所有回复!:) 谢谢你,詹姆斯 function Example() { var color = [ "Pink", "Black",

我有一个按钮,然后当点击运行这个功能,并希望改变我的html中有ID和循环的元素,并按顺序这样做,我不确定为什么我不能这样做!(必须使用数组来执行此操作,请记住,执行此操作的其他方法可能会有所帮助) 感谢所有回复!:) 谢谢你,詹姆斯

function Example() {

                    var color = [
                        "Pink",
                        "Black",
                        "Orange"
                    ];

                    var ids = [
                        "Top",
                        "Mid",
                        "Bot"
                    ];



                for (i = -1, i != 3, i = i + 1) {
                     document.getElementById(ids[i]).style.background = color[i]

                }
您应该有一个用分号分隔的条件和增量部分。使用逗号基本上只有初始化部分。然后您需要以
i=0
开始循环,因为它将是循环中的第一个值。另外,在声明变量时不要忘记
var

试试这个:

for (var i = 0; i != 3; i = i + 1) {
    document.getElementById(ids[i]).style.background = color[i];
}
UPD。要在迭代之间添加延迟(3s=3000ms),可以执行以下操作:

for (var i = 0; i != 3; i = i + 1) {
    (function(index) {
        setTimeout(function() {
            document.getElementById(ids[index]).style.background = color[index];
        }, 3000 * index);
    })(i);
}

阅读更多信息。

更改了我的代码,但仍然没有更改,因此不确定循环是否没有像设置i=0时那样工作,并将循环更改为正确的颜色,因此。。。。如果你能帮忙,谢谢!JamesTaking支持我的错误(打字错误)你有没有可能知道如何计时?它一个接一个地发生?它到底发生了什么?@coolbotic如果你想延迟事情,请使用
setInterval
setTimeout
。这样循环运行一次,然后等待(3sec),然后再次更改下一个!还有,一旦完成,如何使循环重新开始?很抱歉问了这么多问题。