登录  /  注册
博主信息
博文 57
粉丝 7
评论 11
访问量 260983
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
解决js报错 Cannot read property innerHTML of null
樂成的开发笔记
原创
7681人浏览过

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>

运行实例 »

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


本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
1条评论
Mr.Lv 2019-07-19 14:45:28
谢谢你 你的实例我运行 的确可以 关于错误的提示百度一搜一大把解释 不知道为什么我的代码里就获取不了 还是一样为空置 没有解决 把js放在前后我都试过了 不行
1楼
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学