2017-03-22 59 views
0

我想按以下格式顯示日期和日期,但它不適用於我。顯示「Uncaught TypeError:無法設置屬性'innerHTML'爲null」錯誤。任何人都可以幫我解決這個問題嗎?我的下面的JavaScript代碼有什麼問題?

輸出: -

今天是:週三

當前時間:晚上8點:25:20

**我的HTML代碼: - **

<!DOCTYPE html> 
<html> 
<head> 
<meta charset=utf-8 /> 
<title>JS Excercise</title> 
    <script src="Js\DateTimeExcercise.js"> 
    </script> 
</head> 
<body> 
     Today is : <span id="day"></span> 
     <br/><br/> 
     Current time is : <span id="time"></span> 
</body> 
</html> 

**我的Java腳本代碼: - **

var day, time, Sec, Min, Hr, AMPM; 
AMPM = "AM"; 

day = new Date().getDay(); 

Sec = new Date().getSeconds(); 
Min = new Date().getMinutes(); 
Hr = new Date().getHours(); 

if (Hr>12) 
{ 
    Hr = Hr - 12; 
    AMPM = "PM"; 
} 
switch(day) 
{ 
     case 0: 
     txt = "Sunday"; 
     break; 

     case 1: 
     txt = "Monday"; 
     break; 

     case 2: 
     txt = "Tueday"; 
     break; 

     case 3: 
     txt = "Wednesday"; 
     break; 

     case 4: 
     txt = "Thrusday"; 
     break; 

     case 5: 
     txt = "Friday"; 
     break; 

     case 6: 
     txt = "Saturday"; 
     break; 

} 
document.getElementById("day").innerHTML = txt; 

document.getElementById("time").innerHTML = Hr + " "+ AMPM + " "+ ":" + Min + ":" + Sec; 
+1

DOMContentLoaded。 – dfsq

+1

你剛剛閉幕標籤 – Orangesandlemons

+0

你可以嘗試用此來包裝你的代碼來檢查時,文檔準備好之前添加腳本標籤: document.addEventListener(「DOMContentLoaded」,函數(事件){// 把你的代碼放在這裏 }); – remib

回答

2

嘗試調用腳本的HTML的底部。

<!DOCTYPE html> 
<html> 
<head> 
<meta charset=utf-8 /> 
<title>JS Excercise</title> 
</head> 
<body> 
    Today is : <span id="day"></span> 
    <br/><br/> 
    Current time is : <span id="time"></span> 
</body> 
<script src="Js\DateTimeExcercise.js"> 
</script> 
</html> 
+0

好的,謝謝它適合我,可以解釋我腳本前後有什麼不同。 –

+1

@YashwantSingh不同之處在於,當您先運行腳本時,頁面上還不存在元素 – j08691

+0

好的,學到了新的教訓。 –

2

您在呈現DOM之前加載腳本。因此,最好將腳本標記放置在所有代碼下面,正好位於body標記的上方。眼下的代碼無法找到的元素又

另一種可能性是包裝你的代碼在一個事件監聽器,像這樣:

document.addEventListener("DOMContentLoaded", function() 
    // your code 
}); 
+1

感謝您的解釋。 –