首页 > 解决方案 > 如何使用给定的时间数组更改 setTimeout 时间

问题描述

<div id="show"></div>

<script>

var s = document.getElementById("show");

//let say given time array is:
//time will be 1:00,2:30,3:50 so on.....
//we need to convert time in millisecond....

var gtime = new Array("915000", "750000", "605000");

//just want to put in For loop

for(var i=0, i > 3, i++){

//put time array here

setTimeout(function(){
  s.innerHTML = s.innerHTML + //put time each array here.toString();
}, //put time each array here);

}
</script>

就像在 FOR LOOP 中一样:

Ist LOOP setTimeout(function(){ s.innerHTML = s.innerHTML + //把每个数组的时间放在这里.toString(); }, 915000);

2nd LOOP setTimeout(function(){ s.innerHTML = s.innerHTML + //把每个数组的时间放到这里.toString(); }, 750000);

3rd LOOP setTimeout(function(){ s.innerHTML = s.innerHTML + //把每个数组的时间放到这里.toString(); }, 605000);

标签: javascriptarrayssettimeout

解决方案


您获取时间的循环不正确,您可以使用var i in gtimeandgtime[i])获取实际时间。

注意:您需要另一个参数来获取setTimeout()函数内部的正确时间

var s = document.getElementById("show");

//let say given time array is:
//time will be 1:00,2:30,3:50 so on.....
//we need to convert time in millisecond....

var gtime = new Array("9150", "7500", "6050");

var j = 0;

for(var i in gtime){

//put time array here

   setTimeout(function(){
     $("#show").html(gtime[j]);
     j++;
   },Number(gtime[i]));

}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>

Time value: <div id="show"></div>


推荐阅读