JavaScript中document.getElementById(id)的正确用法与常见报错解决
本文详解JavaScript中document.getElementById(id)的用法,重点分析因DOM加载顺序导致的null报错及解决方案。通过调整脚本位置和使用onload事件,确保在元素加载后获取节点,避免Cannot set properties of null错误。
在JavaScript中,document.getElementById(id)是用于访问页面中特定元素的核心方法。
该方法括号内的id参数,用于唯一标识目标HTML元素。
具体使用方式如下:
例如,通过指定的id获取某个元素,并改变其内容。
<html>
<body>
<h1>这是一个网图</h1>
<p id="demo">我的第一个段落</p>
<script>
document.getElementById("demo").innerHTML="我的一段 JavaScript代码";
</script>
</body>
</html>
这段代码的操作为获取id为demo的元素,并修改其innerHTML属性为“我的一段 JavaScript代码”。
document.getElementById()报错处理
在Microsoft Edge和Google Chrome浏览器中,可能会遇到以下报错:
Uncaught TypeError: Cannot set properties of null (setting 'innerHTML')
在Firefox浏览器中,报错信息可能为:
Uncaught TypeError: document.getElementById(...) is null
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width" />
<title>测试</title>
</head>
<body>
<script>
document.getElementById('app').innerHTML= "str";
</script>
<h3 id="app"></h3>
</body>
</html>保存文件名为:错误发生.html。
用Microsoft Edge或Google Chrome浏览器打开运行后,再按下F12键可查看到报错信息。用浏览器打开,就会看到错误:

用Firefox浏览器打开运行后,再按下F12键可查看到报错信息。用浏览器打开,就会看到错误:

document.getElementById()失效的原因分析原因:
浏览器加载HTML文档时,会将HTML文档解析为一个树形结构,称为DOM树。代码的执行顺序是自上而下依次执行,当执行到innerHTML这一行代码时,它并没有加载到下面的DOM结构,就会报错无法读取HTML。
简单地说,就是body还没有加载,无法获取DOM元素,获取不到节点所在的节点。
解决方法:
方法一、document.getElementById()需要放在你这个id位置的后面,如果你把<script>标签放在head部分的话就可能会出现问题,因为document.getElementById()的使用需要把函数放在id的后面。所以,如果我们想避免这个问题,我们把<script>标签放在<body>标签的最后面或</body>标签之后。并且id要完全一样,大小写有差别也不行。
修改后源码如下:
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width" />
<title>测试</title>
</head>
<body>
<h3 id="app"></h3>
<script>
document.getElementById('app').innerHTML= "这是一段文本!";
</script>
</body>
</html>简要说明,参见下图:

保存文件名为:错误修改.html,用浏览器打开,正常运行显示如下:

方法二、还可以如下修改
将document.getElementById()放到函数中,再调用函数。
这里使用HTML onload事件调用这个函数,源码如下:
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width" />
<title>测试</title>
<script>
function funA(){
document.getElementById('app').innerHTML= "这是一段文本!";
}
</script>
</head>
<body onload="funA()">
<h3 id="app"></h3>
</body>
</html>简要说明,参见下图:

用浏览器运行显示效果和前面的一样。
附、document的getElementById方法(method) document.getElementById - Web API 接口参考 | MDN
到此这篇关于js中document.getElementById(id)的具体用法的文章就介绍到这了,更多相关document.getElementById(id)用法内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!
JavaScript将图片转换为Base64编码的两种途径
2026-11-05 16:43:05
怎么在 Vue 或 React 项目中正确集成 animate.js
2026-11-05 10:23:38
JS注册事件:addEventListener基础语法与参数详解
2026-11-05 08:44:56
JSP和JS的区别:运行环境与服务端/客户端职责解析
2026-11-04 23:34:36
pdf.js 官方下载地址:GitHub Release 获取预编译包
2026-11-04 23:07:27
相关标签:
