document.getElementById('id of div that definately exists')
返回null。
我最初加载了javascript,以确保我不需要担心onload事件。我也尝试过使用onload事件。这非常怪异。任何想法或帮助将不胜感激。
答案 0 :(得分:49)
另外要小心如何在页面上执行js。例如,如果您执行以下操作:
(function(window, document, undefined){
var foo = document.getElementById("foo");
console.log(foo);
})(window, document, undefined);
这将返回null,因为您在加载文档之前调用该文档。
更好的选择..
(function(window, document, undefined){
// code that should be taken care of right away
window.onload = init;
function init(){
// the code to be called when the dom has loaded
// #document has its nodes
}
})(window, document, undefined);
答案 1 :(得分:42)
可能由以下原因引起:
请发布您的代码。
答案 2 :(得分:8)
document.getElementById
无效的原因可能有很多原因
您的ID无效
ID和NAME令牌必须以字母([A-Za-z])开头,后面可以跟任意数量的字母,数字([0-9]),连字符(“ - ”),下划线(“ _“),冒号(”:“)和句号(”。“)。 (资源:What are valid values for the id attribute in HTML?)
您在标题中使用了一些已经用作<meta>
名称的ID(例如版权,作者......)它看起来很奇怪但是发生在我身上:如果您正在使用IE看看在
(资源:http://www.phpied.com/getelementbyid-description-in-ie/)
您要定位框架或iframe中的元素。在这种情况下,如果iframe在父级的同一域中加载页面,则应在查找元素之前定位contentdocument
(资源:Calling a specific id inside a frame)
当节点未在DOM中有效加载时,您只是寻找一个元素,或者它可能是一个简单的拼写错误
我怀疑你使用了两次或更多相同的ID:在这种情况下document.getElementById
应该至少返回第一个元素