2017-12-17 3 views
0

"Good morning、User"(朝は午後または夕方に変更することができます)のコードは機能しません。私は助けていただければ幸いです。変数を使用して時刻を基準に午前、午後、または夕方を表示する

のindex.htmlが

<h1 class="mx-3 text-center display-3">Good <span id="time"></span>, Username</h1> 

master.js

var today = new Date() 
var curHr = today.getHours() 
var time = null; 

if (curHr < 12) { 
    var time = "Morning"; 
} else if (curHr < 18) { 
    var time = "Afternoon"; 
} else { 
    var time = "Evening"; 
} 

document.getElementById("time").innerHTML = time; 

スニペット申し訳ありませんが、私には、JavaScriptでのnoobです。

私も(グーグルクロームコンソールから)何このエラーが手段知りたい:

Uncaught TypeError: Cannot set property 'innerHTML' of null 
    at master.js:13 
+0

JSファイルをリンクする部分を含めて、コード全体を投稿してください。 – pepperjack

+0

注:変数の使用のたびに 'var'を置く必要はありません。最初に変数を宣言する必要があります。 –

+0

これらのvar宣言のそれぞれは、セミコロンで終わる必要があります。 –

答えて

1

あなたがスパン前のJavaScriptファイルをリンクしている場合は、それができないので、その後、 Uncaught TypeError: Cannot set property 'innerHTML' of null at master.js:13が発生しますまだスパンを見つける。試してみてください:

window.onload = function(e){ 
    document.getElementById("time").innerHTML = time; 
} 
+0

それはトリックでした、ありがとうございました! –

+1

@SmocksMCM素晴らしい、それが解決したら、答えの左側にチェックマークを押した。 StackOverflowへようこそ:)。 – pepperjack

+1

@SmocksMCM:上記よりも優れたアプローチは、あなたの 'script'タグが''タグの直前で、本文の* end *にあることを保証することです。ウィンドウ 'load'イベントは、すべてのイメージと他の補助的なリソースがロードされた後に、ページロードプロセスの遅いところで**非常に**発生します。正しい答えはほとんどありません。 –

関連する問題