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");