javascript - 外部 Javascript 文件如何影响 HTML 文件的 DOM?

标签 javascript html dom

假设我们的 HTML 文件有以下代码:

<html>
 <head>
  <script src="totti.js"></script>
 </head>
 <body>
  <span id="tim">this'll change on load</span>
 </body>
</html>

因为我不知道我到底该怎么做,所以这是我想要实现的代码(例如 totti.js):

function changeText(){
 document.getElementById("tim").innerHTML = "changed text";
}
changeText();

我想我们需要先将其 id 定义到一个变量中,或者在 HTML 端将其作为参数传递?帮助将不胜感激。谢谢。

最佳答案

您的代码是正确的,但是,如果您将脚本放在 head 标记内,那么脚本将在加载文档之前执行,因此它将不起作用(具有 id 的元素tim 那时还不存在)。

要解决此问题,您可以将脚本标记放在要修改的元素之后(或放在 body 标记的底部),如下所示:

<html>
 <head>
 </head>
 <body>
  <span id="tim">this'll change on load</span>
  <script src="totti.js"></script>
 </body>
</html>

或者您可以让该函数在文档加载后运行,如下所示:

<html>
 <head>
  <script src="totti.js"></script>
 </head>
 <body onload="changeText()">
  <span id="tim">this'll change on load</span>
 </body>
</html>

在这种情况下,从 totti.js 中删除 changeText() 行。

关于javascript - 外部 Javascript 文件如何影响 HTML 文件的 DOM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26074018/

相关文章:

javascript - 防止用户通过 Firebug/Chrome 开发工具查找密码

JavaScript 对象对于所有版本的 Google Chrome 都是唯一的?

javascript - 应用于导航栏的台式机和笔记本电脑的屏幕宽度

javascript - Dropzone 在本地主机上正常工作,在远程服务器上抛出错误

html - 图标与 Chrome 中的文本没有很好地对齐

javascript - 将 GET 请求中的数据附加到 div

javascript - 数组数据仅每隔两个事件呈现到 HTML 表,否则未定义

javascript - RGB 到颜色名称映射(近似颜色映射)

javascript - 如何在 Node 模块中公开对象

html - 存在滚动条时元素宽度不是 100%