Blogger Information
Blog 56
fans 7
comment 11
visits 223137
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
解决js报错 Cannot read property innerHTML of null
樂成的开发笔记
Original
6789 people have browsed it

1、相信很多同学在开发过程中都会遇到
Cannot read property 'innerHTML' of null ——这个报错的字面含义是:不能读取空的内部HTML。

2、实际上,在页面的HTML结构中,innerHTML是有实际的值并可以在console进行获取查询到。

3、根据浏览器的渲染原理,HTML代码从上到下执行代码,当浏览器JS解析器解析到script并进行DOM操作,下面的DOM结构还没有进行搭建。那么就会提示不能正确读取内部的HTML信息。

4、解决思路:将涉及DOM读取部分的script放在DOM结构后面。</body>标签前面。或者在前置的script标签写明:window.onload等,确保DOM树加载完毕后再执行这段script代码。

5、下面示例注释了顺序,可以理解一下

实例

<!DOCTYPE HTML>
<html lang="en-US">
<head>
	<meta charset="UTF-8">
	<title></title>
</head>
<script type="text/javascript">
window.onload=function(){
	var oDiv = document.getElementById('ranking');
	if(Number(oDiv.innerHTML) <= 30){
		alert('3ok'+oDiv.innerHTML);//3加载完成打印3
	}
}
</script>
<script type="text/javascript">
	var oDiv = document.getElementById('ranking');
	if(Number(oDiv.innerHTML) <= 30){
		alert('1ok'+oDiv.innerHTML); //1报错Uncaught TypeError: Cannot read property 'innerHTML' of null
	}
</script>
<body>
	<div class="row">
		<div class="col-lg-12">
			<div class="form-group mb-3">
				<div class="form-control text-center" >您的积分总和为:9527 当前排名第<span id="ranking">30</span>位</div>
			</div>
		</div> <!-- end col -->
	</div>
</body>
<script type="text/javascript">
	var oDiv = document.getElementById('ranking');
	if(Number(oDiv.innerHTML) <= 30){
		alert('2ok'+oDiv.innerHTML); //2文本流顺序打印2
	}
</script>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例


Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
1 comments
Mr.Lv 2019-07-19 14:45:28
谢谢你 你的实例我运行 的确可以 关于错误的提示百度一搜一大把解释 不知道为什么我的代码里就获取不了 还是一样为空置 没有解决 把js放在前后我都试过了 不行
1 floor
Author's latest blog post