Javascript 未捕获的TypeError:无法读取HTMLImageElement处null的属性“classList”
这就是我网站上的问题Javascript 未捕获的TypeError:无法读取HTMLImageElement处null的属性“classList”,javascript,html,css,Javascript,Html,Css,这就是我网站上的问题 Uncaught TypeError: Cannot read property 'classList' of null at HTMLImageElement. 这是我的密码 也许有另一个解决方案来解决这个问题,因为我已经在其他网站上查看了,但仍然没有找到答案 这个代码的问题是什么 <script> var menu = document.getElementById('menu'); var nav = d
Uncaught TypeError: Cannot read property 'classList' of null at HTMLImageElement.
这是我的密码
也许有另一个解决方案来解决这个问题,因为我已经在其他网站上查看了,但仍然没有找到答案
这个代码的问题是什么
<script>
var menu = document.getElementById('menu');
var nav = document.getElementById('nav');
var exit = document.getElementById('exit');
menu.addEventListener('click', function(e) {
nav.classList.toggle('hide-mobile');
e.preventDefault();
});
</script>
您没有任何id为nav的元素 更改文档.getElementById'nav';记录。查询选择“nav”或将id nav添加到元素nav中,以固定小屏幕上的切换按钮 解决方案: 粘贴此代码而不是Javascript代码,然后尝试读取:
var menu = document.getElementById('menu');
var nav = document.querySelector('nav ul');
var exit = document.getElementById('exit');
menu.addEventListener('click', function(e) {
nav.classList.toggle('hide-mobile');
e.preventDefault();
});
说明:
第一:
如果您想使用classlist方法,那么您应该在HTML标记中有一个类。
您所做的是在nothing中搜索一个类,因为getElementById所做的是在DOM中搜索HTML文件中的Id,该Id的名称与传递的参数匹配;你的意思是:
getElementById'nav':它正在搜索名为nav的Id,但您没有。
所以你必须决定:
您可以使用getElementById,但需要在标记中添加一个名为nav的id;所以
或者您可以使用document.querySelector'nav'代替document.getElementById'nav'
第二
在解决了第一个问题后,您将看到另一个问题,那就是小屏幕上的切换按钮不起作用。
这是因为您要在上切换隐藏移动类,而您不希望这样,您希望在元素上切换该类,因为默认情况下该元素包含隐藏移动类。change document.getElementById'nav';记录。查询选择器'nav';按照@DominikMatis说的做,或者给你的导航一个导航id,就像这样。您正在请求getElementById'nav',但您没有在标记上提供id。thx的建议应该没问题,现在我已经像dominik说的那样更改了,但是现在我的导航栏应该显示家庭服务等,现在没有什么显示我错了或者我错过了什么?第二个问题是正确的sam,那么如何解决第二个问题就像我刚才说的,用我为你编写的代码替换你的Javascript代码,很高兴帮助你。