Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未捕获的TypeError:无法读取HTMLImageElement处null的属性“classList”_Javascript_Html_Css - Fatal编程技术网

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代码,很高兴帮助你。