循环遍历DIV ID数组,并每隔x秒刷新一次DIVS

时间:2012-03-08 17:55:27

标签: php javascript jquery

说我有4个div:

<div id='blue'></div>
<div id='refresh12'></div>
<div id='red'></div>
<div id='refresh23'></div>

我将我的页面上以“刷新”开头的每个div放到这样的数组中:

var divs = $('div[id^="refresh"]');

现在,我想要做的是每隔5秒刷新一次数组中的div。我知道我需要使用SetInterval,但我不确定如何启动循环。此外,div不会从另一个页面提取内容,它来自同一页面,只需要每5秒刷新一次的动态数据。任何帮助表示赞赏。感谢。

4 个答案:

答案 0 :(得分:2)

使用setIntervalnot always the best idea,因为如果您的操作需要很长时间且阻塞,则调用可能会叠加。

您可以使用setTimeout()这样的电话来实现您的目标:

var divs = $('div[id^="refresh"]');

setTimeout(function refreshThem () {

    //code to refresh your divs
    divs.xy();

    setTimeout(refreshThem, 5000);

}, 5000);

或者如果您希望第一次刷新一次运行:

(function refreshThem () {

    //code to refresh your divs
    divs.xy();

    setTimeout(refreshThem, 5000);

})();

基本上,当刷新完成时,会设置一个新的超时,以便在5秒内再次运行相同的代码。

答案 1 :(得分:0)

尝试类似:

setInterval(function() {
$('div[id^="refresh"]').each(function(inx) {
// update each div here
});
},5000);

答案 2 :(得分:0)

$(function(){   

     var int=self.setInterval(RefreshDivs,5000);     

});

function RefreshDivs(){

 // do your code to update/ refresh the div content. May be ajax call..

}

答案 3 :(得分:0)

您需要做的事情就像

setInterval(function(){
    $('div[id^="refresh"]').each(function(i,el){
        $(el).load('pageURL ' + $(el).prop('id'));
    })
}, 500)

或某人已经说过,setTimeout()