轉行學開發,代碼100天。
初寫了最簡的一段Js代碼,即通過document中的innerHTML方法修改一個<p>標簽的內容,報以下錯誤。
-"Uncaught TypeError: Cannot set property 'innerHTML' of null"錯誤
代碼如下:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>js-01</title> <script type="text/javascript"> document.getElementById("pid").innerHTML = "Hello World."; </script> </head> <body> <p id ="pid">Hello</p> </body> </html>
解釋:錯誤原因為document中的innerHTML為空,也就是說在加載js文件時,找不到其中調用的對象即文中的<p>標簽。
因此需要將js文件引用放置到<p>標簽之后,即
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>js-01</title> </head> <body> <p id ="pid">Hello</p> <script type="text/javascript"> document.getElementById("pid").innerHTML = "Hello World."; </script> </body> </html>
此時網頁輸出為:
總結:這個小問題暴露了html文件加載順序的理解問題。即html中的內容是按照HTML本身的先后順序加載的。因此在引入js時或者直接添加<script>內容時在html內容之后執行。
其他說明見 https://www.cnblogs.com/Walker-lyl/p/5262075.html