我正在写一些看起来像这样的代码
<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然后停止。 使用我编写的代码,它只是将所有数字写入,等待一秒然后再次重复所有数字。 我对编码很陌生,所以我不知道如何解决这个问题。 如果有人能告诉我该怎么做,我们将不胜感激。
答案 0 :(得分:4)
您的代码中存在多个问题,尽管您使用的是setInterval()
,因为内部有一个while循环,整个循环将每1秒执行一次。
相反,您需要让setInterval()
回调使用if
语句来检查是否要打印值
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;
答案 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>