我必须对项目使用vanilla JavaScript。我有几个功能,其中一个是打开菜单的按钮。它在存在目标标识的页面上工作,但在id不存在的页面上导致错误。在那些功能找不到id的页面上,我收到一个“Can not read property'addEventListener'null”的错误,而我的其他功能都没有工作。无法读取null的属性'addEventListener'
下面是打开菜单的按钮的代码。
function swapper() {
toggleClass(document.getElementById('overlay'), 'open');
}
var el = document.getElementById('overlayBtn');
el.addEventListener('click', swapper, false);
var text = document.getElementById('overlayBtn');
text.onclick = function(){
this.innerHTML = (this.innerHTML === "Menu") ? "Close" : "Menu";
return false;
};
我该如何处理?我可能需要将这些代码包装在另一个函数中,或者使用if/else语句,以便它只在特定页面上搜索id,但不能确定。
你能显示html代码吗?它似乎找不到id为'overlayBtn'的元素 – BlaShadow 2014-09-29 19:14:41
在那些功能找不到id的页面上,我收到“Can not read property'addEventListener'null”错误,而我的其他功能都没有工作。 我认为这个问题的答案非常多。你找不到元素,所以你不能添加一个事件监听器... – Etai 2014-09-29 19:16:16
它可以简单地发生,如果你已经在你的html中使用'class'而不是'id',并且你调用'getElementById'在您的脚本中。 – Deke 2016-06-25 19:50:38