嗨,我正在尝试创建一个简单的倒计时。
这是我的代码,但它不起作用。
你能帮我找出问题吗?
function count() {
for (var cc=20,cc > 0,cc--) {
document.getElementById("cco").innerHTML=cc;
}
}
count();
嗨,我正在尝试创建一个简单的倒计时。
这是我的代码,但它不起作用。
你能帮我找出问题吗?
function count() {
for (var cc=20,cc > 0,cc--) {
document.getElementById("cco").innerHTML=cc;
}
}
count();
您使用的是逗号而不是分号。
for (var cc=20,cc > 0,cc--)
应该
for (var cc=20;cc > 0;cc--)
然而,这可能不会像你想象的那样做,因为循环会立即一直计数到 0(所以用户甚至不会看到倒计时)。我猜你想要类似的东西:
var cc = 20;
var interval = setInterval(function()
{
document.getElementById("cco").innerHTML = -- cc;
if (cc == 0)
clearInterval(interval);
}, 1000);
有关详细信息,请参阅setInterval和clearInterval。
有(至少)两个错误。
第一个是语法:在 for 循环中,参数由分隔;
而不是分隔,
。语法正确的代码如下所示:
function count() {
for (var cc=20;cc > 0;cc--) {
document.getElementById("cco").innerHTML=cc;
}
}
其次,您没有倒计时,而是一遍又一遍地覆盖相同的元素,没有任何时间让用户看到结果。
更好的方法是在setTimeout()
这里使用,它看起来像这样:
var cc = 20;
function count() {
document.getElementById("cco").innerHTML=cc;
if ( cc > 0 ) {
setTimeout( count, 1000 );
}
}
setTimeout( count, 1000 );
该setTimeout()
方法为浏览器留出了一些时间来实际呈现您的修改(并让用户看到它)。
','
在你的';'
for 循环中更改
function count() {
for (var cc=20;cc > 0;cc--) {
document.getElementById("cco").innerHTML=cc
}
}
count();
另一个递归版本setTimeout
:
(function count(cc) {
document.getElementById("cco").innerHTML = cc;
if (cc > 0)
setTimeout(function() { count(--cc); }, 1000);
})(10);
演示:http: //jsfiddle.net/DgWgx/
倒计时时确保开始和结束元素是正确的。
计数:
for (var x=0;x < 10;x++) console.log(x);
从0 到 9
倒计时错误:
for (var x=10;x > 0;x--) console.log(x);
从10 到 1
正确倒计时:
for (var x=10-1;x >= 0;x--) console.log(x);
从9 到 0