我正在尝试制作一个响应迅速的移动导航,它会在菜单项被点击时关闭,但我一直收到一个错误,尽管我在js文件中有其他脚本以相同的方式格式化。你能告诉我为什么我会收到这个错误吗?
错误消息:“未捕获类型错误:navLink.addEventListener不是函数”
JS:
{
let navLink = document.getElementsByClassName("menu-item");
//let navLink = document.querySelector(".menu-item a");
navLink.addEventListener("click", () => {
if (document.querySelector(".nav-header").className === "nav-header responsive") {
document.querySelector(".nav-header").classList.remove(" responsive");
}
else {
return;
}
});
}
如果我更改变量规则或任何东西,我也会收到错误xxx is NULL,所以它可能是从那里产生的?
let navLink = document.querySelector(".menu-item a");
错误消息:“未捕获类型错误:NavLink为空”
2条答案
按热度按时间pes8fvy91#
getElementsByClassName()
返回一个元素数组,因为页面上的多个元素可以具有相同的类名。假设页面上有多个这样的元素,您可以使用for循环为每个元素添加一个事件侦听器。
文档:https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName
8dtrkrch2#
GetElementsByClassName返回一个元素数组。因此,您可能希望针对它们的特定索引:var NavLink[0].addEventListener(...)应该能让你得到你想要的。