如何在每个jquery循环中设置间隔1?

时间:2017-02-11 18:27:15

标签: javascript jquery each setinterval

var J_lis = $(".display");        
// loop thought each element
J_lis.each(function(g){
  g = self.setInterval(function () {
  alert("this");
  }, 1000);
})

我的目的是设置每个元素的循环并为每个元素设置一个间隔。所以第一个元素去,第二个元素将在1000之后开始,依此类推。但是这个代码不会逐一进行,它会快速循环4次,然后停止并再次进行4次。

我希望每个人每个人等待1000个。

for (var f=0; f < J_lis.length; f++){
  f = self.setInterval(function () {
    // code
  }, 1000);
}

这段代码工作得很好,就像我想要的那样,但我想在每个jquery上设置,有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

你应该增加循环间隔的延迟。设置与循环索引相关的间隔延迟。例如(index + 1) * 1000

$(".display").each(function(i,ele){
  setTimeout(function() {
    console.log($(ele).text());
  }, (i+1)*1000);
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="display">Element 1</div>
<div class="display">Element 2</div>
<div class="display">Element 3</div>
<div class="display">Element 4</div>
<div class="display">Element 5</div>