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

 

 
 
   

 

 

 

 

转载于:https://www.cnblogs.com/allencxw/p/8592746.html

### 回答1: 这是一个JavaScript错误,意思是无法设置nullinnerhtml属性。这通常是因为你尝试在一个不存在的元素上设置innerhtml属性。你需要检查你的代码,确保你正在尝试设置正确的元素的innerhtml属性。 ### 回答2: 在编写JavaScript代码的过程,常常会遇到“uncaught typeerror: cannot set property 'innerhtml' of null”这样的错误提示。这个错误提示表示JavaScript代码尝试给一个null或undefined变量赋值,具体来说就是在JavaScript代码使用document.getElementById()方法来获取某个HTML元素的引用时,该元素不存在或者ID值写错等原因导致无法找到该元素,此时就会抛出该错误。 在解决这个错误时,我们需要检查代码document.getElementById()方法所获取的元素是否存在,可以通过console.log()输出调试信息,或者在代码添加if语句判断元素是否存在再进行操作。另外,也可能是因为代码在DOM未完全加载完成时执行,我们需要确保代码在DOM加载完成后再执行。 总之,出现以上错误时,需要认真检查代码,确保元素存在且ID正确,并添加必要的条件判断和等待DOM加载的代码,以免出现上述错误。 ### 回答3: uncaught typeerror: cannot set property 'innerhtml' of null 是一个 JavaScript 错误类型,也被称为运行时错误或异常。该错误意味着代码尝试设置一个不存在或未定义为 null 的元素的 innerHTML 属性值,从而导致了内部错误。下面将详细解释该错误的一些原因及解决办法。 1. 原因: 该错误可能是由于以下原因造成的: - 代码未找到元素。尝试在 HTML 使用 id 或类名选择器创建元素时,需要确保选择器匹配了具有正确 id 或类名的元素。如果代码尝试设置不存在的元素的 innerHTML,则会将 null 分配给元素并触发此错误。 - 代码在元素加载之前运行。如果尝试在文档加载期间运行时设置元素的 innerHTML,则可能出现该错误。这种情况下,应将代码包装在 window.onload 或 document.ready 事件,等待文档元素完全加载之后再执行操作。 - 确保代码设置了正确的属性。请注意属性名称的大小写。如果属性名或值未设置正确,则该错误可能出现。 - 变量或元素转换错误。尝试在元素实际未被分配之前读取属性或将错误类型的值赋值给该属性时,也可能触发此错误。 2. 解决方法: - 确保选择器与元素匹配:在代码确认元素是否存在,并使用正确的 id 或类名。在元素加载之前,请确保等待文档元素完全加载之后再执行操作。 - 检查属性名和元素是否存在:检查代码属性名称的拼写和大小写是否正确。确保元素存在且正确被分配了ID或者类名。 - 检查变量和数据类型:确保赋值给 innerHTML 属性的变量与 string 数据类型相符合。 综上所述,uncaught typeerror: cannot set property 'innerhtml' of null 错误提示意味着代码尝试为 null 或未定义的元素设置 innerHTML 属性,这并不合法。该错误可能由选择器与元素不匹配、属性名称或元素未分配ID或者类名等原因导致。为解决此错误,需要确认选择器与元素匹配、检查属性名称、元素是否存在以及读与分配操作的变量等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值