Javascript 设置间隔不';t似乎在循环中工作得不好

Javascript 设置间隔不';t似乎在循环中工作得不好,javascript,html,loops,Javascript,Html,Loops,我对循环中的间隔有问题。 这是我的密码: for(i=0;i<=10;i++){ (function(i){ set = setInterval(function(){ alert("hello, world.") // for example. },1000); })(i); }; 但我真的不想这样规划我的代码。 我必须使用循环。 提前谢谢 这不起作用的原因: &l

我对循环中的间隔有问题。 这是我的密码:

for(i=0;i<=10;i++){
        (function(i){
            set = setInterval(function(){
                alert("hello, world.") // for example.
            },1000);
        })(i);
    };
但我真的不想这样规划我的代码。 我必须使用循环。 提前谢谢


这不起作用的原因:

<div id="lbl"></div><br>
    <script>
    function fun(){
        var text = "in the name of god";
        var lbl = document.getElementById("lbl");
        var arr = new Array("a","b","c","d","e","f","g","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"," ",0,1,2,3,4,5,6,7,8,9);
        for(x in text){
            var spn = document.createElement("span");
            lbl.appendChild(spn);

            for(i=0;i<=arr.indexOf(text[x]);i++){
                (function(i){
                    setTimeout(function(){
                        spn.innerHTML = arr[i];
                    },i*200);
                })(i);
            };              
        };
    };
    fun();
    </script>

函数fun(){ var text=“以上帝的名义”; var lbl=document.getElementById(“lbl”); var arr=新数组(“a”、“b”、“c”、“d”、“e”、“f”、“g”、“i”、“j”、“k”、“l”、“m”、“n”、“o”、“p”、“q”、“r”、“s”、“t”、“u”、“v”、“w”、“x”、“y”、“z”、“0,1,2,3,4,5,6,7,8,9”); for(文本中的x){ var spn=document.createElement(“span”); lbl.儿童(spn); 对于(i=0;i您需要将其反转——让计时器驱动循环,而不是由循环驱动计时器。 根据您的示例:

<label id="lbl"></label><br>
<script>

function ok(a){
    var arr = new Array("a","b","c","d","e","f","g","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z",0,1,2,3,4,5,6,7,8,9);
    var lbl = document.getElementById("lbl");
    var i = 0, iMax = arr.indexOf(a);

    function next()
    {   
        lbl.innerHTML = arr[i];
        if (++i <= iMax) {
            setTimeout(next,i * 200);
        }                
    }
    setTimeout(next,0);
}
ok("z");
</script>

功能正常(a){ var arr=新数组(“a”、“b”、“c”、“d”、“e”、“f”、“g”、“i”、“j”、“k”、“l”、“m”、“n”、“o”、“p”、“q”、“r”、“s”、“t”、“u”、“v”、“w”、“x”、“y”、“z”、0,1,2,3,4,5,6,7,8,9); var lbl=document.getElementById(“lbl”); var i=0,iMax=arr.indexOf(a); 函数next() { lbl.innerHTML=arr[i];
if(+i)你到底想做什么?Scripter-我很难理解为什么你希望以这种方式在循环中有一个setInteval。你能提供一点关于你想完成什么的解释吗?你需要setTimeout(fn,i*1000),而不是setInterval…如果你不关闭“i”,你就不需要范围避孕套你期望它做什么?你正在启动10个定时器,它们都将在大约相同的时间(1000毫秒)启动。然后它们都将等待1000毫秒,然后再次触发。我看不出有必要使用计时器来实现类似的功能。为什么不发布您的实际代码呢?谢谢,好主意,您知道我需要我的代码来获取字符串和元素,然后从字符串中的第一个单词开始执行此操作,当等于给定的单词时,停止并执行此操作然后转到另一个单词,直到字符串中的所有单词都被放入元素,明白吗?请原谅我的英语不好,我明白了,但我已经让你完成了。我的工作不是做你的工作。;)我不想让你做我的工作,我告诉过你我的计划
<label id="lbl"></label><br>
<script>

function ok(a){
    var arr = new Array("a","b","c","d","e","f","g","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z",0,1,2,3,4,5,6,7,8,9);
    var lbl = document.getElementById("lbl");
    var i = 0, iMax = arr.indexOf(a);

    function next()
    {   
        lbl.innerHTML = arr[i];
        if (++i <= iMax) {
            setTimeout(next,i * 200);
        }                
    }
    setTimeout(next,0);
}
ok("z");
</script>