0

为什么自执行匿名函数无法访问 DOM 元素。为什么这样的例子不起作用。

(function() {
    alert(document.getElementById('someElement'));
)();

为什么警报会显示“null”?

4

2 回答 2

1

只需在 DOM 加载时执行它。您也可以使用脚本延迟属性。

(function() {
    window.addEventListener("load", function() {
        alert(document.getElementById('someElement'));
    }, false);
})();
于 2014-10-06T13:20:30.747 回答
0

你错过了你的大括号}

它应该是

(function() {
    alert(document.getElementById('someElement'));
})();

这将立即执行,因此需要将其放置在适当的位置以确保 DOM 已加载。确保这个脚本在你的 HTML 文件的末尾加载,或者像 Georgi Naumov 建议的那样包括一个检查,向 window.load 事件添加一个监听器将做同样的事情。

于 2014-10-06T13:27:21.257 回答