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代码移动到HTML下方的部分。或者在页面加载完成后执行它。如果您使用的是JQuery,您可以:
1 2 3 4 5 | $(document).ready(function() { ... your code ... }); |
也许尝试将此代码放入
1 2 3 4 5 | $(document).ready(function(){ //Code }); |
块
将您的脚本放在HTML文档的末尾而不是开头,看看是否能解决问题。
JavaScript无法编辑DOM元素,因为它尚未创建。
此外,如果在代码的某些部分使用
在我的情况下,这是因为在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事件中。