关于javascript:document.getElementbyId()返回null

document.getElementbyId() returning null

本问题已经有最佳答案,请猛点这里访问。

在注释中标记为//错误的行的代码中。 我收到Javascript错误说:"无法读取'null'的属性样式"。 我不知道它无法找到对象。 我曾经想过并尝试过一切。 请帮忙。 这是代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<script type="text/javascript">

    $.getJSON('https://graph.facebook.com/647045111?fields=first_name&<%= Session["Token"] %>',

    function (data) {
        $('#userName').html(data.first_name);
    });

    document.getElementById('connectedUnregistered').style.display = 'block'; //Error



   

   

     Facebook login

     <img src="/Content/Images/fbconnect.png"/>    

   

     

     Register Now

您正在实际创建之前执行您的JavaScript代码。

另请注意,您未使用相应的关闭

因此,将您的JavaScript代码移动到HTML下方的部分。或者在页面加载完成后执行它。如果您使用的是JQuery,您可以:

1
2
3
4
5
    $(document).ready(function() {

        ... your code ...

    });

也许尝试将此代码放入

1
2
3
4
5
$(document).ready(function(){

//Code

});


将您的脚本放在HTML文档的末尾而不是开头,看看是否能解决问题。

JavaScript无法编辑DOM元素,因为它尚未创建。


此外,如果在代码的某些部分使用document.write,则获取null非常常见。


在我的情况下,这是因为在jsp / html(无论)文件的开头有这一行:

1
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

删除它解决了我的问题(我不记得它在我的页面上的第一个位置)


此错误还可能表示该元素没有ID。

1
<input type="text" name="myelem" />

确保您的元素有ID。

1
<input type="text" name="myelem" id="myelem" />


javascript代码在DOM完全可用且调用失败之前运行。请尝试以下方法

1
2
3
$(document).ready(function() {
  document.getElementById('connectedUnregistered').style.display = 'block'; //Error
}

代码在创建元素之前执行。由于您使用的是jquery,只需将其包装在document.ready中:

1
2
3
$(function(){
    // code goes here
});

这将在创建DOM后执行。


脚本在元素加载之前尝试获取元素。将脚本放在元素后面或将其放在load或ready事件中。