首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JS TypeError:无法读取null的属性'style‘

问JS TypeError:无法读取null的属性'style‘
EN

Stack Overflow用户
提问于 2014-04-05 04:17:26
回答 2查看 592关注 0票数 0

我有这个代码,当它被调用时,它会给我一个“类型错误”...有人能告诉我出了什么问题吗?我好像不明白出了什么问题。

代码语言:javascript
复制
document.getElementById('cblberrormsg'+curID).style.display = "block";
var res = ''+ response;
document.getElementById('cblberrormsg'+curID).innerHTML = res;

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2014-04-05 04:20:03

document.getElementById('cblberrormsg'+curID)正在返回null。这意味着具有该id的对象不存在。

最常见的原因是,您试图在页面的该部分被解析和加载之前过早地执行这行代码。您的代码必须位于相关的<script>标记中,或者您必须使用一个函数,该函数将等待执行脚本,直到页面加载完成。

但是,由于在本例中是使用变量构造id字符串,也可能是curID不是您认为的那样,或者超出了页面中可接受的值。

一旦您完全确定此代码在页面HTML加载之前不会被执行,那么我建议您像this一样对其进行检测

代码语言:javascript
复制
console.log("curID=" + curID);
console.log("document.getElementById('cblberrormsg'+curID)=" + document.getElementById('cblberrormsg'+curID);
document.getElementById('cblberrormsg'+curID).style.display = "block";
var res = ''+ response;
document.getElementById('cblberrormsg'+curID).innerHTML = res;
票数 0
EN

Stack Overflow用户

发布于 2014-04-05 04:31:55

jfriend00是对的,你引用的对象不存在。

如果文档还没有加载,或者由于某种原因您没有正确设置curID,那么每次您得到的代码都会爆炸。

您可以通过稍微更改代码来测试这一点:

代码语言:javascript
复制
var foo = document.getElementById('cblberrormsg'+curID);
if(foo){
    foo.style.display = "block";

    // foo exists 
    // do whatever, yadayadayada
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22872253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档