2016-05-21 11 views
0

このJSコードが機能しない理由を教えてもらえますか?jsコードのエラー

それは時間を毎秒を印刷する必要があります:

function stampajDatum(){ 
    var now = new Date(); 
    var sat = now.getHours(); 
    var mins = now.getMinutes(); 
    var sec = now.getSeconds(); 
    document.write(sat + ":" + mins + ":" + sec); 
} 
setInterval("stampajDatum()", 1000); 
+2

文書がロードが存在していたすべての要素を削除し、それをリセットします終了した後 ')('のdocument.writeを呼び出します。 [document.writeの代替手段は何ですか?](http://stackoverflow.com/questions/4537963/what-are-alternatives-to-document-write) –

+0

また、 'setInterval()'に文字列を指定することは普通です'悪い習慣とみなされます。'(http://stackoverflow.com/questions/6081560/is-there-ever-a-good-reason-to-pass-a-string-to-settimeout) ) ' - [' setInterval(stampajDatum、1000) '](http://stackoverflow.com/questions/4506074/settimeout-with-string-or-anonymous-function-reference-speedwise)。 –

+0

文字列を 'setInterval'に渡したのはなぜですか?それが間違っている場合、パラメータは関数です。 – t0mm13b

答えて

0
function stampajDatum(){ 
    var now = new Date(); 
    var sat = now.getHours(); 
    var mins = now.getMinutes(); 
    var sec = now.getSeconds(); 
    document.write(sat + ":" + mins + ":" + sec);// the problem is here 
    //This writes content to a place after script block 
    //if the script is in head then nothing is visible. 
    //use something like this: 
    //document.getElementById('timer').innerHTML = sat + ":" + mins + ":" + sec; 
} 
setInterval("stampajDatum()", 1000);//This is OK but setInterval(stampajDatum, 1000); is better. 
//Note that there is no() after stampajDatum 
0

私は私のコンソールで取得しています最初のメッセージがその暗黙の評価についてです。私は通常setInterval()を使用していないが、私はそのsetTimeout()作品を知っている(それsetInterval(stampajDatum(), 1000);作る)setInterval("stampajDatum()", 1000);

を関数名の前後に引用符を奪います。ここでは例です:

function stampajDatum(){ 
    var now = new Date(); 
    var sat = now.getHours(); 
    var mins = now.getMinutes(); 
    var sec = now.getSeconds(); 
    document.write(sat + ":" + mins + ":" + sec); 
    setTimeout(stampajDatum(), 1000); 
} 
stampajDatum(); 
+0

'setTimeout(stampajDatum()、1000);'は動作しません –