简体   繁体   English

隐藏显示菜单getElementsByClassName

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM