Javascript可以';无法按id查找元素? 测试javascript var e=document.getElementById(“db_信息”); e、 innerHTML='Found you';

Javascript可以';无法按id查找元素? 测试javascript var e=document.getElementById(“db_信息”); e、 innerHTML='Found you';,javascript,getelementbyid,Javascript,Getelementbyid,如果我使用alert(e)它显示为null。。。。很明显,我在屏幕上看不到任何“找到你”的画面。我做错了什么?脚本是在构建主体的DOM之前执行的。将其全部放入一个函数中,并从body元素的onload调用它。问题是您试图在元素存在之前访问它。您需要等待页面完全加载。一种可能的方法是使用onload处理程序: <html> <head> <title>Test javascript</title> <script type="

如果我使用
alert(e)它显示为
null
。。。。很明显,我在屏幕上看不到任何“找到你”的画面。我做错了什么?

脚本是在构建主体的DOM之前执行的。将其全部放入一个函数中,并从body元素的
onload
调用它。

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

<html>
<head>
    <title>Test javascript</title>

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

        </div>        
        <div id="db_info">
        </div>
    </div>
</body>
</html>
不过,大多数常见的JavaScript库都提供了DOM就绪事件。这更好,因为
window.onload
也会等待所有图像。在大多数情况下,您不需要这样做


另一种方法是将脚本标记放在关闭
-标记之前,因为它前面的所有内容都是在执行时加载的,然后在onload事件中运行代码,或者在关闭
主体
标记之前运行代码。

您试图查找一个元素,但此时该元素不存在。

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

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

另一种方法是在元素存在之前调用
脚本

您应该尝试以下操作之一:

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

  • +1对于window.onload和匿名函数^^^值得思考:JavaScript代码块何时运行?id为“db_info”的DIV何时创建和/或保证存在?
    window.onload = doStuff;
    
    function doStuff() {
        var e = document.getElementById("db_info");
        e.innerHTML='Found you';
    }