为了账号安全,请及时绑定邮箱和手机立即绑定

JavaScript无法通过ID查找元素?

JavaScript无法通过ID查找元素?

30秒到达战场 2019-10-21 14:35:54
<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..很显然,屏幕上没有任何“找到你”的信息。我究竟做错了什么?
查看完整描述

3 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

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


window.onload = function () {

    var e = document.getElementById("db_info");

    e.innerHTML='Found you';

};

不过,大多数常见的JavaScript库都提供DOM就绪事件。这样比较好,因为window.onload也要等待所有图像。在大多数情况下,您不需要这样做。


另一种方法是将script标签放置在您的</body>-tag 之前,因为它前面的所有内容都会在执行时加载。


查看完整回答
反对 回复 2019-10-21
?
白衣非少年

TA贡献1155条经验 获得超0个赞

浏览器如何知道何时在script标签内运行代码?因此,要使代码在窗口完全加载后运行,


window.onload = doStuff;


function doStuff() {

    var e = document.getElementById("db_info");

    e.innerHTML='Found you';

}

另一种选择是将您<script...</script>的</body>代码放在结束标记之前。


查看完整回答
反对 回复 2019-10-21
?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

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

您应该尝试以下方法之一:

  1. 将代码包装到一个函数中,并使用body onload事件对其进行调用。

  2. 将脚本放在文档末尾

  3. 在脚本标签声明中使用defer属性


查看完整回答
反对 回复 2019-10-21
  • 3 回答
  • 0 关注
  • 572 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信