Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当分配给变量时,getElementById返回null_Javascript - Fatal编程技术网

Javascript 当分配给变量时,getElementById返回null

Javascript 当分配给变量时,getElementById返回null,javascript,Javascript,getElementById分配给变量时返回null var element = document.getElementById("ul1"); var newelement = document.createElement("li"); newelement.innerHTML = "New"; element.appendChild(newelement); 当您将javascript放在文档的标题中时,它将在页面上的任何其他元素之前加载(并阻止正文的加载) 下面是一个简单的例子,说明你实

getElementById
分配给变量时返回null

var element = document.getElementById("ul1");
var newelement = document.createElement("li");
newelement.innerHTML = "New";
element.appendChild(newelement);

当您将javascript放在文档的
标题中时,它将在页面上的任何其他元素之前加载(并阻止
正文的加载)

下面是一个简单的例子,说明你实际上在做什么:

<!-- script runs before element creation -->
<script type="text/javascript">
    var element = document.getElementById('ul1');
</script>
<!-- this is after execution, where JS could not find the element but only now is the element actually created -->
<ul id="ul1"></ul>

var元素=document.getElementById('ul1');
    要解决这个问题,您可以做一些事情

    • 标记放在要定位的元素下方
    • 标签放在关闭
      标签的正上方)
    • 使用
      window.onload=function(){…}
      确保在执行任何操作之前加载页面

    然后
    ul
    元素将存在,并且您将能够附加LI:)

    您是否已将脚本标记放置在
    ul1
    之后?您可能没有具有该ID的元素,或者该元素还不可用!在对马修斯回答的评论中,你说:“这是关于DOM没有被加载的问题”你怎么知道?OP的代码片段没有提供这些信息。我个人最喜欢的是将我的脚本放在链接文件中的(几个)函数中,然后直接调用它们。它更干净,并利用了缓存。@Teemu因为
    document.getElementById
    找不到元素的唯一原因是1)
    该ID实际上不存在(键入或删除)
    或2)
    DOM未加载
    。前者是一个非常基本的调试问题,后者只是不知道这是一个问题。@abluegyly不,有:)。@Teemu这将是1个选项-实际上并不存在。你试图成为一个聪明的人,但你做得不是很好:^)