Jquery set interval()不逐个显示数字

Jquery set interval()不逐个显示数字,jquery,Jquery,你好,朋友,我试着用循环一对一地显示数字1到4,我的代码是 <script> $(document).ready(function(){ setInterval(function() { var i = 1; for(i=0; i<=5; i++) { var dis = $('#fade');

你好,朋友,我试着用循环一对一地显示数字1到4,我的代码是

<script>
    $(document).ready(function(){       
        setInterval(function() {            
            var i = 1;
            for(i=0; i<=5; i++)
            {
                var dis = $('#fade');                   
                dis.html(i);                    
                i++;
            }           
        }, 2000);
    });    
</script>

$(文档).ready(函数(){
setInterval(函数(){
var i=1;

对于(i=0;i删除第二个准备好的
文档
——这是完全多余的。

我认为您想要实现的计数器可以使用此代码完成(尽管我不确定我是否正确理解您):

$(文档).ready(函数(){
变量计数器=1,
最大值=5;
var timer=setInterval(函数(){
$('#fade').html(计数器);
计数器+=1;
//迭代后停止
如果(数量>最大值){
窗口清除间隔(计时器);
}
}, 2000);
});

如果您只想显示从1到4的数字,我建议使用setTimeout,方法如下:

var counter = 1;
$(function() {
  incrementCounter();
});

function incrementCounter() {
  $('#fade').html(counter);
  counter++;
  if (counter < 4) {
    setTimeout(incrementCounter, 2000);
  }
}
var计数器=1;
$(函数(){
递增计数器();
});
函数递增计数器(){
$('#fade').html(计数器);
计数器++;
如果(计数器<4){
设置超时(递增计数器,2000);
}
}
另一种选择是:

$(function() {
  for (var i = 1; i <= 4; i++) {
    setTimeout(function() {
      $('#fade').html(counter);
    }, (i - 1) * 2000);
  }
});
$(函数(){
对于(var i=1;i

请看以下内容

$(function(){    
        setInterval(function() {
        for(i=0; i<=5; i++)
        {
            $('#fade').append(i);                  
        }       

    }, 2000);
    })​
$(函数(){
setInterval(函数(){
对于(i=0;i给你:

您不能一次调用所有的
setInterval
函数,它们直接执行。
更新:使用setTimeout

$(文档).ready(函数(){
变量显示=功能(i){
$('#fade').html(i);
if(i<4){
setTimeout(函数(){display(++i)},1000);
}                    
};
显示器(1);
});

使用jasd的示例,我添加了另一行代码,使其重复

var counter = 1;
$(function() {
  incrementCounter();
});

function incrementCounter() {
  $('#fade').html(counter);
  counter++;
  if (counter <= 5) {
    setTimeout(incrementCounter, 2000);
  }else{
      counter = 1;
      setTimeout(incrementCounter, 2000);
  }
}​
var计数器=1;
$(函数(){
递增计数器();
});
函数递增计数器(){
$('#fade').html(计数器);
计数器++;

如果(计数器刚刚指出,如果将i=0更改为i=1,将在div:)中循环1-5,则需要1-5),这将同时执行多个间隔函数,并且其中任何一个都不会停止。我认为您至少必须将
setInterval
更改为
setTimeout
@Sirko您是对的,甚至没有注意到,复制粘贴的坏习惯!
$(function(){    
        setInterval(function() {
        for(i=0; i<=5; i++)
        {
            $('#fade').append(i);                  
        }       

    }, 2000);
    })​
$(document).ready(function() {
  var display = function(i) {
    $('#fade').html(i);
    if (i < 4) {
        setTimeout(function() {display(++i)}, 1000);
    }                    
  };
  display(1);
});
var counter = 1;
$(function() {
  incrementCounter();
});

function incrementCounter() {
  $('#fade').html(counter);
  counter++;
  if (counter <= 5) {
    setTimeout(incrementCounter, 2000);
  }else{
      counter = 1;
      setTimeout(incrementCounter, 2000);
  }
}​