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事件。这很可怕。如果您有任何想法或帮助,我们将不胜感激。

原因可能是:

  • 无效的HTML语法(某些标记未关闭或类似错误)
  • 重复ID-有两个具有相同ID的HTML DOM元素
  • 也许您试图通过ID获取的元素是动态创建的(由ajax加载还是由脚本创建)

  • 请发布您的代码。

    可能有很多原因导致
    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提醒,这也可能是我忽略的一种可能性。