带有循环的jQuery中的setTimeout

Ale*_*lex 1 javascript jquery settimeout

我有一个单词数组,我想div按顺序将标签更改为每个单词.

<script>
    function printWord(w) {
    setTimeout(function() {
        $("#word").text(w);
        }, 1000);

     }

function readBook() {
    var array = $("#offscreen_text").text().toString().split(/[\s\n]+/);
    for (i =1; i < array.length; i++){
        printWord(array[i]);
    }

}
</script>
<body onload="readBook()">
<div id="word"></div>
<div id="offscreen_text">hi hello bye goodbye this is a test with some random text</div>
</body>
Run Code Online (Sandbox Code Playgroud)

当我跑步时readBook()似乎没有发生任何事情.

Rah*_*ulB 5

您可以在不使用for循环的情况下使用setInterval.

function readBook() {
    var array = $("#offscreen_text").text().toString().split(/[\s\n]+/);
    var i=0;
    setInterval(function(){
        $("#word").text(array[i]); i++;    
    },1000);   
}
Run Code Online (Sandbox Code Playgroud)

演示:http://jsfiddle.net/sywzno5p/

使用clearInterval()编辑小提琴:http://jsfiddle.net/gn6eh7t1/