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个选项-实际上并不存在。你试图成为一个聪明的人,但你做得不是很好:^)