【问题标题】:Array Section JavaScript?数组部分 JavaScript?
【发布时间】:2016-03-10 07:39:23
【问题描述】:

我有一个按钮,然后单击该按钮运行此功能,并希望更改我的 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]

                }

【问题讨论】:

    标签: javascript html arrays loops selection


    【解决方案1】:

    您的for-loop 应该有一个条件和增量部分,用分号分隔。使用逗号,您基本上只有初始化部分。然后您需要使用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);
    }
    

    阅读更多关于closures in loops的信息。

    【讨论】:

    • 你更改了我的代码,但仍然没有改变,所以不确定它的循环是否仍然无法正常工作,就像刚刚设置 i = 0 并移除循环时它会更改为正确的颜色一样。 ...如果你能帮忙谢谢!詹姆斯
    • 收回我的错误(错字)你会知道如何计时吗?它会一一发生吗?
    • “一一发生”究竟是怎么回事?
    • @coolbotic 如果你想拖延时间,请使用setIntervalsetTimeout
    • 所以就像循环运行一次然后等待(3秒)然后再次更改下一个!另外,一旦完成,如何使循环重新开始?抱歉所有问题。
    猜你喜欢
    • 2019-11-06
    • 2016-07-18
    • 1970-01-01
    • 2022-01-08
    • 2018-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多