http://jsfiddle.net/xDWLQ/

JavaScript:

var quotes = new Array();
quotes[0] = "message 0";
quotes[1] = "message 1";

var qText = document.getElementById('qText');
for (i = 0; i < quotes.length; i++) {
    setInterval(function() { qText.innerHTML = quotes[i]; }, 2000);
}​

HTML:
<p class="qText" id="qText">Predefined text</p>​
innerHTMLqText 变为 undefined,而不是变为 quotes[0] ,后跟 quotes1 。现在我尝试通过在 setInterval 函数中使用 alert() 来调试它,为我提供 for 循环的索引,并且它两次都说“2”。那么,我将如何暂停 for 循环而不是 setInterval 创建新线程并增加索引?

最佳答案

我认为这是你想要的,而不是一个循环。

var quotes = ["message 0", "message 1"];
var qText = document.getElementById('qText');
var i = 0;
var len = quotes.length;

setInterval(function() {
   qText.innerHTML = quotes[i++];
   if (i === len) i = 0;
}, 2000);

关于javascript - 我如何让 setInterval 暂停它所在的 for 循环?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12181706/

10-11 11:15