在set循环中使用setInterval减少

时间:2019-06-01 08:36:28

标签: javascript

使用这种代码结构,如何以1秒的间隔减少用户插入的数字作为秒表。我已经创建了这个脚本,但是没有得到必要的结果。哪个代码是问题?

  var seconds = prompt();
    setInterval(function () {
        for (var i = seconds; i>0; i--){
            console.log(i)
        }
    },1000);
<p id="result"></p>

2 个答案:

答案 0 :(得分:3)

您可以使用一个函数来检查该值并退出计时器间隔。

它分为两个部分,首先设置一个间隔,然后清除该间隔。

在回调内部显示值并减小它。然后检查该值是否小于零,并在这种情况下清除间隔。

您不需要在回调内部进行for循环,因为您只想显示一个值。

var seconds = +prompt(),
    interval = setInterval(function () {
        document.getElementById('result').innerHTML = seconds;
        if (--seconds < 0) clearInterval(interval);
    }, 1000);
<p id="result"></p>

答案 1 :(得分:1)

设置值:document.getElementById(“ result”)。innerHTML =秒;

,然后以clearInterval(stopWatch);

结尾
<script>
    var seconds = prompt();

    var stopWatch = setInterval(function() { 
    if(seconds <=0){
        clearInterval(stopWatch);
        return;
    }
    document.getElementById("result").innerHTML = seconds;
    seconds--;
}, 1000);

 <p id="result"></p>