JavaScript变量使用问题:设置meter元素display:none报undefined如何解决
问题原因及修复方案
- 报错的核心原因是调用
document.getElementById后多余拼接了.innerHTML:document.getElementById("meter")返回的就是可操作的<meter>DOM节点对象,而.innerHTML是用来读取/修改节点内部文本内容的属性,你的<meter>标签内部没有任何内容,所以最终赋值给meter变量的是空字符串。
字符串类型不存在style属性,因此访问meter.style时会返回undefined,触发报错。 - 修复方案非常简单,去掉代码末尾的
.innerHTML即可:
var meter = document.getElementById("meter"); meter.style.display = "none";
额外提示:如果修改后仍然报错,可检查JS代码的执行时机,需要确保DOM节点渲染完成后再执行JS代码,可将JS代码放在
<body>标签的末尾,或者包裹在DOMContentLoaded事件回调中执行。
内容的提问来源于stack exchange,提问作者Proking73Questioneer
相关产品推荐
相关产品推荐

