我想在javascript中进行倒计时,使用简单的变量,for循环,设置超时。
我在尝试实时进行for循环更新时遇到困难(每秒)我现在在网页上得到-1。
//HTML PART
<p id=timer>0</p>
//JS PART
var timer = 10;
var text = "";
function f() {
for (timer; timer > 0; timer--) {
text += timer + "<br>";
}
timer--;
if( timer > 0 ){
setTimeout( f, 1000 );
}
}
f();
document.getElementById("timer").innerHTML = timer;
请解释错误以及我是否犯了任何愚蠢的错误
答案 0 :(得分:2)
看起来你想通过每秒更改一次值来显示10到0的定时器值。如果是这样,你可以这样做:
1.你需要在这个<p id="timer">0</p>
左右的计时器周围加上引号来纠正你的HTML
你需要按照我的评论删除for循环。
3.在函数f()中移动document.getElementById("timer").innerHTML = timer;
。
var timer = 10;
//var text = "";
function f() {
//for (timer; timer > 0; timer--) {
// text += timer + "<br>";
//}
document.getElementById("timer").innerHTML = timer;
timer--;
if (timer >=0) {
setTimeout(f, 1000);
}
}
f();
&#13;
<p id="timer">0</p>
&#13;
答案 1 :(得分:0)
你可以这样做,我在代码中提供了注释以供解释:
var count = 10;
function timer(targetValue) {
// display first number on screen
document.getElementById("timer").textContent = count;
// decrease count by 1
count--;
// check if timer is still grater than target value
if (count >= targetValue) {
// call timer() function every second to update
setTimeout(timer, 1000, targetValue);
}
}
timer(0);
从10减少到0。
想要从10倒数到5?只需使用timer(5)