0

每次文档间隔时,如何添加到最后一个数字+1?我得到这个:jsfiddle.net/zAt7C/1/

$(document).ready(function () {
    // verification
    $('title').text('jQuery is working!');

    // loop
    setInterval(function () {
        for (var i = 1; i < 2; i++) {
            $('.repeat').append(i + ' ');
        };
    }, 1000);
});
4

3 回答 3

0

LIVE DEMO

var i = 0;
setInterval(function () {
    $('.repeat').append(' '+ (i++) );
}, 1000);
于 2013-03-28T01:56:54.517 回答
0

jsFiddle 演示

答案实际上在于变量作用域的使用。该变量i仅存在于setInterval回调函数的范围内。在该函数之前和之后,该变量不存在,因此它不能保存值……它只是在每次函数启动时重新初始化。如果我们将变量移到setTimeout函数之外,它就会成为更大范围的一部分,即$(document).ready事件处理程序的一部分。它将对该范围和该范围内的所有其他范围(在本例中为setTimeout回调)保持可用。

一本关于 Javascript 的好书是 Douglas Crockford 的Javascript: The Good Parts。还有一篇很好的文章解释了JavaScript 闭包如何工作?

于 2013-03-28T01:57:46.673 回答
0
$(document).ready(function () {
    // verification
    $('title').text('jQuery is working!');

    (function func (i) {
        setTimeout(function () {
            $('.repeat').append(i + ' ');
            i += 1;

            if (i <= 10) {
                func(i);
            }
        }, 1000);
    }(0))
});

小提琴

于 2013-03-28T02:06:23.380 回答