如何使用setInterval或setTimeout并在计数期间显示结果?

Jon*_*eCA 6 javascript

我试图在调用函数之前将计时器从5秒减少到零,我可以成功地做到这一点,但是我还没有能够在倒计时时显示计时器值.而不是显示值,<div></div>从空格到"数字:0".我已经使用了两个setTimeout并且setInterval结果相同.

<script type="text/javascript">
    for (i = 5; i > 0; i--) {
        function countDown() {
            setInterval(function () {
                document.getElementById("displayDiv").innerHTML = "Number: " + i;
            }, 1000);
        }
    }
</script>
Run Code Online (Sandbox Code Playgroud)

我也试过用.value它代替.innerHTML没有帮助.

<input type="button" value="Count" onclick="countDown()" />

<div id="displayDiv" />
Run Code Online (Sandbox Code Playgroud)

这看起来应该很简单,但它让我难过.任何帮助表示赞赏

Der*_*會功夫 11

function countDown(i) {
    var int = setInterval(function () {
        document.getElementById("displayDiv").innerHTML = "Number: " + i;
        i-- || clearInterval(int);  //if i is 0, then stop the interval
    }, 1000);
}
countDown(5);
Run Code Online (Sandbox Code Playgroud)

演示:http://jsfiddle.net/DerekL/sFtqZ/(包括额外的回调参数)