Javascript 无法设置属性';显示';未定义的
我正在编写隐藏/显示菜单的脚本,但遇到了一些问题Javascript 无法设置属性';显示';未定义的,javascript,css,Javascript,Css,我正在编写隐藏/显示菜单的脚本,但遇到了一些问题 function displayMenu() { //var classMenu = event.target.className; //classMenu += 'Menu'; //document.getElementsByClassName(classMenu).style.display = 'block'; document.getElementsByClassName('btn-pageMenu').style.dis
function displayMenu() {
//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;}
我也试着这样:
.btn-pageMenu {display:none;}
没有更多的成功。有人有什么建议吗?我正在学习JS,与其他类似的脚本相比,我没有发现错误
感谢您的帮助:)
文档。GetElementsByCassName('btn-pageMenu')
提供了一个。您应该使用:document.getElementsByClassName('btn-pageMenu')[0]。style.display
(如果它是要更改的列表中的第一个元素)
如果要更改所有节点的样式。请在列表中循环显示:
var elems = document.getElementsByClassName('btn-pageMenu');
for (var i=0;i<elems.length;i+=1){
elems[i].style.display = 'block';
}
我在网站上找到了这个答案
在这段代码中,我们在一个元素中添加了多个样式:
let
元素=document.querySelector('span')
,csssstyle=(el,styles)=>{
for(样式中的var属性){
el.style[property]=样式[property];
}
}
;
cssStyle(元素,{background:'tomato',color:'white',padding:'0.5rem1rem'});
span{
字体系列:无衬线;
颜色:#323232;
背景:#fff;
}
乱数假文
为什么不使用jQuery进行隐藏和显示?但无论如何,请确保您的目标是正确的。您的元素真的具有“btn pageMenu”类吗或者你可以使用一个ID?因为我更喜欢自己编写JS脚本,而不是只为某些功能使用完整的库。是的,我肯定会使用class。@TikTaZ:FYIfieldset.toolsbox ul#btn pageMenu{display:none;}
在css中启用getElementById('btn-pageMenu'))
或document.querySelector(“#btn pageMenu”)
哦,很抱歉浪费您的时间,在我看来,当我指定一个unic类名时,我认为它会找到ID,忘记类可以是多个的,所以它会返回一个列表。感谢您的帮助:)嗨@TikTaz,回答问题很少是浪费时间。我认为其他人也可以从答案中受益。
$('.btn-pageMenu').css('display','block');