jQuery循环,同时更新HTML延迟

时间:2014-08-29 05:12:06

标签: javascript jquery loops delay

我要做的是迭代一组值并在HTML上显示它。并重复一遍。它在更新HTML时应该有1秒的间隔。

FIDDLE

到目前为止,这是我尝试过的,似乎我的setInterval运行不正常? 感谢。

<div class='x'>Hello World</div>

var arr = [
    'lorem ipsum',
    'dolor sit amet',
    'abc def ghij klmn?',
    'esprit d corps'
];

if (arr) {
    $.each(arr, function (i, v) {
        setInterval(function () {
            var index = i == arr.length - 1 ? 0 : i;
            var data = arr[index];

            console.log(data);
            $('.x').html(data);
            console.log();
        }, i * 1000);
    });
}    

2 个答案:

答案 0 :(得分:3)

你需要什么?

var arr = [
    'lorem ipsum',
    'dolor sit amet',
    'abc def ghij klmn?',
    'esprit d corps'];

if (arr) {
    var i = 0;
    setInterval(function () {
        i = i == arr.length ? 0 : i;
        var data = arr[i];
        $('.x').html(data);
        i++;
    }, 1000);
}

演示:Fiddle

答案 1 :(得分:0)

试试这段代码。

  1. 创建一个全局变量来存储当前索引。
  2. 调用函数以从setInterval
  3. 中的数组打印当前索引值

    var arr = [     &#39; lorem ipsum&#39;,     &#39; dolor sit amet&#39;,     &#39; abc def ghij klmn?&#39;,     &#39; esprit d corps&#39; ];

     var i = 0;
        if(arr){
        setInterval(function () {
                    i = (i == arr.length - 1) ? 0 : i;
                    var data = arr[i];
                    printValue(data);
                    i++;
                }, 1000);
        }
    
    function printValue(str){
     $('.x').html(str);
    }
    

    这是JS Fiddle的工作演示 http://jsfiddle.net/wuf25fj8/8/