jQuery到纯JavaScript

时间:2019-03-07 11:59:35

标签: javascript jquery

我试图制作一个切换菜单,并在Codepen上找到了这个示例(https://codemyui.com/responsive-sidebar-menu/)。我想将Jquery代码变成纯Javascript,但是显然我写的东西有问题。

这就是我写的(我为main设置了id,并在汉堡菜单上添加了Onclick函数,这是与原始菜单仅有的两个区别):

    function toggle(){
        var main = document.getElementById("mymain");
        var button = document.querySelectorAll(".button");
        var sidebarItem = document.querySelectorAll(".sidebar-item");

        main.classList.toggle("move-to-left");
        button.classList.toggle("active");
        sidebarItem.classList.toggle("active");

        for(let i = 0; i < sidebarItem.length; i++){
            sidebarItem[i].classList.toggle("active");
        }
    }

1 个答案:

答案 0 :(得分:0)

首先,querySelectorAll为您提供一个节点列表,而不是节点元素,因此,如果要使用classList,则需要遍历节点列表。试试这个:

var button = [...document.querySelectorAll(".button")]
button.map( el => el.classList.toggle("active") )

我将节点列表散布到一个数组中,然后可以使用map方法

将此内容应用于所有querySelectorAll元素