JS代碼報錯:Uncaught TypeError: Cannot set property 'onclick' of null

在寫JS代碼中的綁定事件時(將JS與HTML標籤分開時),發現會有如下錯誤提示:

Uncaught TypeError: Cannot set property 'onclick' of null

代碼如下:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script>
			document.getElementById("btn").onclick=function(){
				document.getElementById("p1").innerHTML="慢慢來!";
			}
		</script>
	</head>
	<body>
		<p id="p1">我叫小芳芳,今天我有認真學習哦!</p>
		<input type="button" id="btn" value="click me!">
	</body>
</html>

對此有兩個解決的辦法

1.將JS標籤放到<input>標籤下方

2.將代碼修改爲:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script>
			window.onload=function(){
			document.getElementById("btn").onclick=function(){
				document.getElementById("p1").innerHTML="慢慢來!";
			}				
			}

		</script>
	</head>
	<body>
		<p id="p1">我叫小芳芳,今天我有認真學習哦!</p>
		<input type="button" id="btn" value="click me!">
	</body>
</html>

這是因爲瀏覽器在獲取到服務器返回的代碼時是按照順序執行的,所以如果html的dom樹還沒有完全生成,你執行js的時候,就會出現無法讀取到某些元素的情況,這樣js代碼也就無法執行了!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章