[英]hide show menu getElementsByClassName
I wanna make a hide/show menu in JavaScript. 我想用JavaScript创建一个隐藏/显示菜单。 I must use getElementsByClassName in my menuHeader at least! 我必须至少在menuHeader中使用getElementsByClassName! I have fixed so I can hide and show only the first menuContent. 我已经修复了,所以我只能隐藏和显示第一个menuContent。 I would like to click on one menuHeader so it opens the menuContent who is under the menuHeader! 我想单击一个menuHeader,以便打开menuHeader下的menuContent! How can I do to hide and show the other content to(menuContent2) without making several functions? 如何在不执行几个功能的情况下向(menuContent2)隐藏和显示其他内容? Is it possible? 可能吗? Can I fix this with a loop? 我可以循环解决此问题吗?
Here is my HTML code: 这是我的HTML代码:
<a class="menuHeader">SPORT</a><br>
<div class="menuContent">//**It only opens this Content no matter which menuHeader I click on!**
<a href="">Result</a><br>
<a href="">Live</a><br>
<a href="">Standing</a><br>
</div>
<a class="menuHeader">NEWS</a><br>
<div class="menuContent2">
<a href="">Local</a><br>
<a href="">World</a><br>
</div>
Here is my JavaScript code: 这是我的JavaScript代码:
function menuFunction(){
var ele = document.getElementsByClassName("menuContent")[0];
for(var i = 0; i < ele.length; i++)
{
ele[i];
}
if(ele.style.display == "none") {
ele.style.display = "block";
}
else {
ele.style.display = "none";
}
}
function init(){
var menu = document.getElementsByClassName("menuHeader");
for(var i = 0; i < pic.length; i++) {
{
menu[i].onclick = menuFunction;
}
}
}
window.onload = init;
//EDIT I fixed it, thanks Arun P Johny. //编辑我已修复它,谢谢Arun P Johny。
Because var ele = document.getElementsByClassName("menuContent")[0];
因为var ele = document.getElementsByClassName("menuContent")[0];
will always return the first element with the class menuContent
. 将始终返回带有menuContent
类的第一个元素。
var menu = [].slice.call(document.getElementsByClassName("menuHeader"), 0); for (var i = 0; i < menu.length; i++) { menu[i].onclick = menuFunction; } var contents = document.getElementsByClassName("menuContent"); function menuFunction() { var ele = contents[menu.indexOf(this)]; if (ele.style.display == "none") { ele.style.display = "block"; } else { ele.style.display = "none"; } }
<a class="menuHeader">SPORT</a><br/> <div class="menuContent"> <a href="">Result</a><br/> <a href="">Live</a><br/> <a href="">Standing</a><br/> </div> <a class="menuHeader">NEWS</a><br/> <div class="menuContent"> <a href="">Local</a><br/> <a href="">World</a><br/> </div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.