JavaScript 抛出错误“无法读取null的style属性”

JavaScript 抛出错误“无法读取null的style属性”

在本文中,我们将看到如何在JavaScript中收到一个错误消息“无法读取null的style属性”,并通过一个示例了解导致此错误的原因。然后我们将尝试通过对代码片段进行一些小的改动来纠正它。

当我们试图访问一个属性时,要么它没有任何值(甚至没有正确定义),要么它在整个代码片段中没有被定义,那么就有可能出现此错误。下面是浏览器控制台包含错误信息的图形表示(以红色显示)。

JavaScript 抛出错误“无法读取null的style属性”

我们将通过示例来理解概念。

示例1: 在第一个示例中,我们将创建一个HTML文档(命名为“ index.js ”,或者是其他用户自定义的名称),然后创建一个包含一些文本的div标签,我们最初将它的颜色设为绿色(下面是代码片段)。

HTML

<!DOCTYPE html> 
<html lang="en"> 
  
<head> 
    <meta charset="UTF-8"> 
    <meta name="viewport" content= 
        "width=device-width, initial-scale=1.0"> 
</head> 
  
<body> 
    <!-- This is really a bad technique to 
         call JavaScript file just after the body tag-->
    <!-- This is the reason why we receive that 
         shown error in console itself-->
    <script src="index.js"></script> 
      
    <div id="id_1" style="color: green;"> 
        GeeksforGeeks 
    </div> 
</body> 
  
</html>

输出结果:

JavaScript 抛出错误“无法读取null的style属性”

然后,我们将创建另一个文件,这是一个JavaScript文件(命名为“ index.js ”或任何其他用户定义的名称),我们将使用它来访问div框的id,然后尝试在浏览器的控制台中显示其值,进一步尝试更改它的值,然后我们将查看输出部分,了解我们在想要更改它或者显示它时所见到的确切值。

JavaScript

let id = document.getElementById("id_1"); 
console.log(id); 
  
// Cannot read properties null error 
// will be received... 
id.style.color = "blue";

现在,当我们刷新页面并打开浏览器的控制台,下面的输出将显示出来。

输出:

JavaScript 抛出错误“无法读取null的style属性”

现在,正如我们所看到和想象的那样,我们已经收到了 null 这是因为我们在div标签之前调用了我们的脚本标签,所以 document.getElementById() 无法获取div标签内现有的id值。

让我们看下另一个示例,展示了我们如何通过一些小的修改来进行修正。

示例2: 在这个示例中,我们将考虑我们在之前示例中所做的一切,并且在此处我们将尝试做一些小的修改,首先是将<script>标签放在<div>标签后面,并且在最后调用它是最佳实践,这将帮助它们在某些情况下不会无限运行。这是我们的HTML文件,在其中进行了一些更改。

HTML

<!DOCTYPE html> 
<html lang="en"> 
  
<head> 
    <meta charset="UTF-8"> 
    <meta name="viewport" content= 
        "width=device-width, initial-scale=1.0"> 
</head> 
  
<body> 
    <div id="id_1" style="color: green;"> 
        GeeksforGeeks 
    </div> 
  
    <script src="index.js"></script> 
</body> 
  
</html>

以下展示的是我们的JavaScript文件,它自身也有一些修改。

JavaScript

let id = document.getElementById("id_1"); 
console.log(id); 
  
// This works perfectly now..... 
id.style.color = "blue";

输出:

JavaScript 抛出错误“无法读取null的style属性”

下面是浏览器控制台中显示的图像,显示了包含 id 和初始值的 div 块本身。

JavaScript 抛出错误“无法读取null的style属性”

注意: 请务必记住不要在 body 标签后面立即调用脚本标签,以避免文件以及加载和工作过程中的某些异常情况。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程