こんにちは、単純なカウントダウンを作成しようとしています。
ここに私のコードがありますが、機能していません。
問題を見つけるのを手伝ってもらえますか?
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を参照してください。
(少なくとも) 2 つの間違いがあります。
;
1 つ目は構文です。 for ループでは、パラメーターはではなく で区切られ,
ます。構文上の正しいコードは次のようになります。
function count() {
for (var cc=20;cc > 0;cc--) {
document.getElementById("cco").innerHTML=cc;
}
}
第 2 に、カウントダウンはありませんが、まったく同じ要素を何度もオーバーライドし、ユーザーが結果を確認する時間がありません。
より良いアプローチはsetTimeout()
、ここで使用することです。これは次のようになります。
var cc = 20;
function count() {
document.getElementById("cco").innerHTML=cc;
if ( cc > 0 ) {
setTimeout( count, 1000 );
}
}
setTimeout( count, 1000 );
このsetTimeout()
アプローチでは、ブラウザーが実際に変更をレンダリングする (そしてユーザーがそれを見る) までに時間がかかります。
for ループ','
で withを変更します';'
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);