猿问

JavaScript无法通过ID查找元素?

<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>

如果我使用alert(e);它,它就会出现null..很显然,屏幕上没有任何“找到你”的信息。我究竟做错了什么?


30秒到达战场
浏览 573回答 3
3回答

肥皂起泡泡

问题是您试图在元素存在之前对其进行访问。您需要等待页面完全加载。一种可能的方法是使用onload处理程序:window.onload = function () {&nbsp; &nbsp; var e = document.getElementById("db_info");&nbsp; &nbsp; e.innerHTML='Found you';};不过,大多数常见的JavaScript库都提供DOM就绪事件。这样比较好,因为window.onload也要等待所有图像。在大多数情况下,您不需要这样做。另一种方法是将script标签放置在您的</body>-tag 之前,因为它前面的所有内容都会在执行时加载。

白衣非少年

浏览器如何知道何时在script标签内运行代码?因此,要使代码在窗口完全加载后运行,window.onload = doStuff;function doStuff() {&nbsp; &nbsp; var e = document.getElementById("db_info");&nbsp; &nbsp; e.innerHTML='Found you';}另一种选择是将您<script...</script>的</body>代码放在结束标记之前。

慕桂英4014372

在元素存在之前调用脚本。您应该尝试以下方法之一:将代码包装到一个函数中,并使用body onload事件对其进行调用。将脚本放在文档末尾在脚本标签声明中使用defer属性
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答