无法设置undefined的属性'display'

Tik*_*TaZ 23 javascript css

我正在编写脚本来隐藏/显示菜单但我遇到了一些麻烦.

    function displayMenu() {
//var classMenu = event.target.className;
//classMenu += 'Menu';
    //document.getElementsByClassName(classMenu).style.display = 'block';
document.getElementsByClassName('btn-pageMenu').style.display = 'block';
    }
Run Code Online (Sandbox Code Playgroud)

在评论我最终想做什么,但即使我尝试使用静态var它也无法正常工作.在CSS中:

    fieldset.toolsbox ul.btn-pageMenu {display:none;}
Run Code Online (Sandbox Code Playgroud)

我也是这样尝试的:

    .btn-pageMenu {display:none;}
Run Code Online (Sandbox Code Playgroud)

没有更多的成功.有人有建议吗?我正在学习JS,当我与其他类似的脚本进行比较时,我没有发现错误.

谢谢你的帮助 :)

Koo*_*Inc 70

document.getElementsByClassName('btn-pageMenu')提供nodeList.您应该使用:( document.getElementsByClassName('btn-pageMenu')[0].style.display如果它是您要更改的列表中的第一个元素.

如果要更改style.display所有节点循环列表:

var elems = document.getElementsByClassName('btn-pageMenu');
for (var i=0;i<elems.length;i+=1){
  elems[i].style.display = 'block';
}
Run Code Online (Sandbox Code Playgroud)

完成:如果你使用jquery它就像:

?$('.btn-pageMenu').css('display'???????????????????????????,'block');??????
Run Code Online (Sandbox Code Playgroud)

  • 嗨@TikTaz,回答一个问题很少是浪费时间.我认为其他人也可以从答案中受益. (4认同)