此问题在此处已有答案:
What do querySelectorAll and getElementsBy* methods return?(12个答案)
昨天关门了。
尝试创建一个响应式侧边栏,我希望一些东西在关闭时隐藏,打开时显示。我尝试用get,set和remove属性来做,但是不起作用。标签已经有隐藏属性了。
const menu = document.querySelector(".menu");
const sidebar = document.querySelector(".sidebar");
const hidden = document.querySelectorAll(".hiddens");
menu.addEventListener("click", sidebarWidth)
function sidebarWidth(){
if(sidebar.style["width"] == "5.5vw"){
sidebar.style["width"] = "18vw";
show();
} else {
sidebar.style["width"] = "5.5vw";
hide();
}
}
function show(){
hidden.getAttribute("hidden");
hidden.removeAttribute("hidden");
}
function hide(){
hidden.setAttribute("hidden");
}
尝试在sidebarWidth函数中使用set,get和remove属性,尝试为他们创建另一个事件,尝试现在的方式,都不起作用。
2条答案
按热度按时间hpxqektj1#
检查setAttribute的API,我们会发现它需要两个参数,您缺少第二个参数来设置它的true或false
另外,由于
hidden
是从document.querySelectorAll
得到的,它是一个数组,所以不能直接调用setAttribute
,我们需要一个一个地迭代因此更改为以下代码
n8ghc7c12#
首先,可以使用HTML元素的
hidden
属性。此外,
queryselectorAll(".hiddens")
函数会传回.hiddens
类别中所有元素的数组。需要像这样循环遍历它们: