无法将属性“display”设置为undefined [英] Cannot set property 'display' of undefined

查看:962
本文介绍了无法将属性“display”设置为undefined的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我写脚本隐藏/显示菜单,但我遇到了一些麻烦。

  function displayMenu $ b // var classMenu = event.target.className; 
// classMenu + ='Menu';
//document.getElementsByClassName (classMenu ).style.display ='block';
document.getElementsByClassName('btn-pageMenu')。style.display ='block';
}



在注释中我最后想做什么, var它不工作。
在CSS中:

  fieldset.toolsbox ul.btn-pageMenu {display:none;} 

我也尝试这样:

 code> .btn-pageMenu {display:none;} 

任何人都有建议?



感谢您的帮助:)

解决方案

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

如果要更改所有节点的 style.display ,请执行以下操作:

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

要完整:如果你使用jquery它是简单的:

  $('。btn-pageMenu' ).css('display','block'); 


I'm writting script to hide/show menu but I get some troubles.

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

In comment what I want to do finally, but even if I try with static var it's not working. In the CSS :

    fieldset.toolsbox ul.btn-pageMenu {display:none;}

I try like this too :

    .btn-pageMenu {display:none;}

No more success. Anybody have a suggestion ? I'm learning JS and I not finding errors when I compare with other similar scripts.

Thanks for your help :)

解决方案

document.getElementsByClassName('btn-pageMenu') delivers a nodeList. You should use: document.getElementsByClassName('btn-pageMenu')[0].style.display (if it's the first element from that list you want to change.

If you want to change style.display for all nodes loop through the list:

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

to be complete: if you use jquery it is as simple as:

​$('.btn-pageMenu').css('display'​​​​​​​​​​​​​​​​​​​​​​​​​​​,'block');​​​​​​

这篇关于无法将属性“display”设置为undefined的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆