我在 SO 和网络上看到了许多其他帖子,但这些帖子涉及在创建元素之前尝试添加事件处理程序。我的情况有所不同。
我有一个 html 文档,其中包含以下部分:
<nav id="main_menu">
<ul>
<li id="liMapFilter" class="list"><img id="imgFilter" src="images/filter_icon.png">Filter</li>
<li id="liDiagnostics" class="list"><img id="imgTools" src="images/tools_icon.png">Administration</li>
</ul>
</nav>
我在页面加载后设置了一些事件处理程序:
$(document).ready(function() {
home.init();
});
在home.init()
内函数我设置了以下监听器:
var elmMapFilter = document.getElementById('liMapFilter"');
cs_core.addEvent(elmMapFilter, 'click', home.showDialogMapFilter, false);
所有其他监听器处理程序都连接得很好,但这个特定的监听器处理程序总是抛出空引用。我无法理解这个处理程序何时工作正常:
var elmDiagnostics = document.getElementById('liDiagnostics');
cs_core.addEvent(elmDiagnostics, 'click', core.showDiagnostics, false);
请指教。
最佳答案
您有一个打印错误。您的 ID 中有一个杂散的 "
字符。
关于javascript - 当其他工作正常时 document.getElementById 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23019902/