用于序列号的Javascript setInterval

时间:2016-01-18 08:30:39

标签: javascript

我正在写一些看起来像这样的代码

<script type="text/javascript">
setInterval(function write_numbers(){
var count = 1;
var brk = "<br>"
while (count < 1218){
 document.write(count + brk);
 count++;
 }},1000)
</script>

我需要它显示第一个数字,然后等待一秒然后显示下一个数字(2)然后等待一秒钟,我需要这个继续直到达到1218然后停止。 使用我编写的代码,它只是将所有数字写入,等待一秒然后再次重复所有数字。 我对编码很陌生,所以我不知道如何解决这个问题。 如果有人能告诉我该怎么做,我们将不胜感激。

5 个答案:

答案 0 :(得分:4)

您的代码中存在多个问题,尽管您使用的是setInterval(),因为内部有一个while循环,整个循环将每1秒执行一次。

相反,您需要让setInterval()回调使用if语句来检查是否要打印值

&#13;
&#13;
var count = 1;
var interval = setInterval(function write_numbers() {
  if (count <= 1218) {
    document.body.appendChild(document.createTextNode(count));
    document.body.appendChild(document.createElement('br'));
    count++;
  } else {
    clearInterval(interval);
  }
}, 1000)
&#13;
&#13;
&#13;

答案 1 :(得分:0)

两个问题

1)如果你正在使用setInterval,那么你必须清除间隔,否则它将是一个无限循环

2)使用if而不是while,以便逐个打印该号码。

试试这个

var count = 1;
var interval1= setInterval(function write_numbers(){
    var brk = "<br>"
    if (count < 1218)
    {
       document.write(count + brk);
       count++;
    }
    else 
    {  
        count = 1;
       clearInterval(interval1);
    }
},1000);

答案 2 :(得分:0)

下面的脚本可以帮到你:

<script>
var count = 1;
var brk = "<br>";
var myVar = setInterval(function(){ myTimer() }, 1000); // This should be a global variable for clearInterval to access it.

function myTimer() {
 document.write(count + brk);
 count++;
 if(count > 1218){
  myStopFunction();
 }
}

function myStopFunction() {
    clearInterval(myVar);
}
</script>

答案 3 :(得分:0)

首先,您应该在setInterval之外定义计数。定义内部将每次重置它。

其次,while (count < 1218){}应该是条件语句。我已将if(count>= 1218)视为终止条件。

第三,即使您使用setInterval,也请务必使用clearInterval

代码

var count = 1;
var interval = setInterval(function write_numbers() {
  var brk = "<br>"

  document.write(count + brk);
  count++;
  if (count >= 10) {
    window.clearInterval(interval);
  }
}, 1000)

答案 4 :(得分:0)

尝试使用此代码,只需对代码进行一次更改。 count变量声明setInterval函数的一侧

<script type="text/javascript">
    var count = 1;
    setInterval(function write_numbers(){
        var brk = "<br>"
        if (count < 1218)
        {
           document.write(count + brk);
           count++;
        }

    },1000);
</script>