day01-JavaScript中"Uncaught TypeError: Cannot set property 'innerHTML' of null"错误
转行学开发,代码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
心未老,即奋不顾身!