首页 > 解决方案 > document.getElementById() 在函数闭包中不起作用

问题描述

我正在尝试在我的 javascript 中使用函数闭包,如下所示:

在我的 html 文件中:

<head>
    <script src="myscript.js"></script>
</head>

<body>
    <section id="mysectionId"></section>
</body>

在 myscript.js 中:

(function() {
    var id = document.getElementById('mysectionId');
    console.log(id);
}());

但是, id 似乎等于 null。我不确定我做错了什么——函数闭包范围是否排除了像“文档”这样的全局变量?如果是这样,为什么我仍然可以在函数闭包中使用“console.log()”?

标签: javascriptjquery

解决方案


您的 javascript 在您的 html 加载之前正在运行。将您的脚本标签放在正文最底部的 html 内容之后

<head>
    // put css here
</head>

<body>
    <section id="mysection"></section>
<script src="myscript.js"></script>
</body>

推荐阅读