Javascript 未捕获类型错误:无法设置属性';能见度';未定义的
我试着在按下按钮后让一些东西看不见。问题是我想同时瞄准多个目标 所以我不能用:Javascript 未捕获类型错误:无法设置属性';能见度';未定义的,javascript,html,Javascript,Html,我试着在按下按钮后让一些东西看不见。问题是我想同时瞄准多个目标 所以我不能用: document.getElementById(“target”).style.visibility=“hidden” 因为它只针对4个元素中的1个 我尝试使用: `document.getElementsByClassName(“target”).style.visibility=“hidden” ☰;打开 函数openNav(){ document.getElementById(“mySi
document.getElementById(“target”).style.visibility=“hidden”代码>
因为它只针对4个元素中的1个
我尝试使用:
`document.getElementsByClassName(“target”).style.visibility=“hidden”
☰;打开
函数openNav(){
document.getElementById(“mySidenav”).style.width=“250px”;
document.getElementsByClassName(“target”).style.visibility=“hidden”;
document.getElementById(“targetimg”).style.textAlign=“center”;
}
您需要循环document.getElementsByClassName(“targ”)的结果
因为按类名获取元素会生成一个列表,所以需要通过遍历该列表将样式分别添加到每个元素中。我还建议将targ类指定给li标记,而不是锚,因为隐藏锚仍然会在列表项中留下项目符号:
函数openNav(){
//document.getElementById(“mySidenav”).style.width=“250px”;
targList=document.getElementsByClassName(“targ”);
document.getElementsByClassName(“targ”)
如果(目标列表){
对于(var x=0;x
☰;打开
切换
元素容器的可见性,而不是直接以它们为目标,如何:
window.addEventListener('DOMContentLoaded',()=>{
document.querySelector(“.menu trigger”).addEventListener('单击',(事件)=>{
event.stopPropagation();
event.preventDefault();
openNav();
});
});
函数openNav(){
//document.getElementById(“mySidenav”).style.width=“250px”;
const menuEl=document.querySelector('.menu');
menuEl.classList.toggle('menu-off');
//document.getElementById(“targetimg”).style.textAlign=“center”;
}
。菜单关闭{
可见性:隐藏;
不透明度:0;
}
-
☰ 打开
当您使用getElementsByClassName
方法时,返回的是一个集合,而不是一个元素,因此它上面没有像visibility
这样的属性。因此,除了在循环上下文中之外,请执行您正在执行的所有操作。你知道,for(let el of collection){}
stuff…类不等于id。。。。
document.getElementsByClassName("targ").forEach(e => e.style.visibility = "hidden");