Javascript getElementById是否返回null?
Javascript getElementById是否返回null?,javascript,getelementbyid,Javascript,Getelementbyid,document.getElementById(“明确存在的div的id”)返回null 我最初是最后加载javascript的,以确保不必担心onload事件。我还尝试使用onload事件。这很可怕。如果您有任何想法或帮助,我们将不胜感激。原因可能是: 无效的HTML语法(某些标记未关闭或类似错误) 重复ID-有两个具有相同ID的HTML DOM元素 也许您试图通过ID获取的元素是动态创建的(由ajax加载还是由脚本创建) 请发布您的代码。可能有很多原因导致document.getElemen
document.getElementById(“明确存在的div的id”)
返回null
我最初是最后加载javascript的,以确保不必担心onload事件。我还尝试使用onload事件。这很可怕。如果您有任何想法或帮助,我们将不胜感激。原因可能是:
请发布您的代码。可能有很多原因导致
document.getElementById
不起作用
- 你的身份证无效 ID和名称标记必须以字母([a-Za-z])开头,后面可以是任意数量的字母、数字([0-9])、连字符(“-”)、下划线(“)、冒号(:”)和句点(“.”)。 (资源:)
- 你在标题中使用了一些已经用作
名称的id(例如版权、作者等)。这看起来很奇怪,但我碰巧遇到了:如果你正在使用IE,请看一看 (资源:) - 您的目标是帧或iframe中的元素。在这种情况下,如果iframe在父级的同一个域中加载了一个页面,那么在查找元素之前,您应该以
为目标 (资源:)contentdocument
- 您只是在DOM中没有有效加载节点时查找元素,或者可能是拼写错误
我怀疑您是否使用了相同的ID两次或两次以上:在这种情况下,
document.getElementById
应该至少返回第一个元素还要注意如何在页面上执行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);
谢谢你的iframe提示,帮了我不少忙#2实际上不会产生
null
,而只是具有该id的两个元素中的第一个#1可能与需要打开和关闭标记的元素的单个标记一样微妙。e、 g.:
vs
对我来说,1也是答案。我的脚本在ng-repeat中。对我来说,在测试时,有一个脚本错误已从控制台清除。在修复错误之前,我无法获取的idduplicate,我有一个类似的情况,即我的内容是动态生成的,并且在使用该id创建内容的脚本之前调用了查询id的脚本。。我修正了这个顺序,它对我有效确保你只写id的名称,而不在id前面写
。对于像我这样有这个问题的人,经过多次实验,我发现使用getElementById()
在使用window.onload=myFunction()
时返回空值,但当我使用
时,这种情况通常发生在我意外地在文档顶部加载javascript而不是在底部加载html之后。感谢+1提醒,这也可能是我忽略的一种可能性。