在jQuery中,如果div计数超过5,如何使用interval停止函数?

在jQuery中,如果div计数超过5,如何使用interval停止函数?,jquery,Jquery,即使屏幕上有5个以上的div,它也会继续运行,有没有办法解决这个问题 if ($('div').length > 5) { // Do nothing } else { window.setInterval(function(){ $(document).ready(function() { $('body').append('<div>' + (Math.floor(Math.random() * 9) + 0) + '</div>')

即使屏幕上有5个以上的div,它也会继续运行,有没有办法解决这个问题

if ($('div').length > 5) {
  // Do nothing
} else {
  window.setInterval(function(){
    $(document).ready(function() {
      $('body').append('<div>' + (Math.floor(Math.random() * 9) + 0) + '</div>');
    });
  }, 1000);
}
if($('div')。长度>5){
//无所事事
}否则{
setInterval(函数(){
$(文档).ready(函数(){
$('body').append(''+(Math.floor(Math.random()*9)+0)+'';
});
}, 1000);
}

听起来您想要的是在创建5时清除间隔计时器,因此您还需要再次检查间隔计时器代码内部

比如:

var timer= window.setInterval(function(){
    if ($('div').length > 5){
       clearInterval(timer)
    }else{
        $('body').append('<div>' + (Math.floor(Math.random() * 9) + 0) + '</div>');
    }     

  }, 1000);
var timer=window.setInterval(函数(){
如果($('div')。长度>5){
清除间隔(计时器)
}否则{
$('body').append(''+(Math.floor(Math.random()*9)+0)+'';
}     
}, 1000);

检查div的数量时,请考虑一下。您需要学习使用循环或递归。另外,document.ready是一个包装器。它不应该在你的函数中间。我试着用条件做一个for循环(i=0;i<5;i++),但它不起作用。它是代码> var i=0 < /代码>。也许这就是问题所在?你最终想做什么?这是我试图创建的矩阵式背景中的一段代码。添加var没有帮助。请将该代码也添加到您的问题中。展示一些尝试是可以的。所以你只需要在身体上添加5个div?你也可以完全移除外部if/else。结果是一样的,在我看来会干净一点