关于getelementbyid:Javascript找不到id的元素?

Javascript can't find element by id?

本问题已经有最佳答案,请猛点这里访问。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<html>
<head>
    Test javascript

    <script type="text/javascript">
        var e = document.getElementById("db_info");
        e.innerHTML='Found you';
   
</head>
<body>
   
       

               
       
       
   
</body>
</html>

如果我使用alert(e);它会出现null ....显然我没有在屏幕上找到任何"找到你"。 我究竟做错了什么?


问题是您尝试在元素存在之前访问它。您需要等待页面完全加载。一种可能的方法是使用onload处理程序:

1
2
3
4
window.onload = function () {
    var e = document.getElementById("db_info");
    e.innerHTML='Found you';
};

但是,最常见的JavaScript库提供了一个DOM-ready事件。这是更好的,因为window.onload也等待所有图像。在大多数情况下,您不需要这样做。

另一种方法是将脚本标记放在结束 -tag之前,因为它前面的所有内容都是在执行时加载的。


在元素存在之前调用脚本。

您应该尝试以下之一:

  • 将代码包装到函数中并使用body onload事件来调用它。
  • 把脚本放在文档的末尾
  • 将defer属性用于脚本标记声明

  • 浏览器如何知道何时在脚本标记内运行代码?因此,要在窗口完全加载后运行代码,

    1
    2
    3
    4
    5
    6
    window.onload = doStuff;

    function doStuff() {
        var e = document.getElementById("db_info");
        e.innerHTML='Found you';
    }

    另一种方法是在结束标记之前保留


    在关闭body标记之前,在onload事件中运行代码。
    你试着找到一个你现在不存在的元素。


    该脚本在构建正文的DOM之前执行。将它全部放入函数中并从body元素的onload调用它。