javascript - js隐藏按钮 - toggle jquery show hide




显示1 div,并使用Javascript隐藏所有其他人点击 (2)

使用常规for循环作为for in循环将遍历NodeList的其他属性,而不是遍历元素列表

function showhide(id){
        if (document.getElementById) {
          var divid = document.getElementById(id);
          var divs = document.getElementsByClassName("hide");
          for(var i=0;i<divs.length;i++) {
            divs[i].style.display = "none";
          }
          divid.style.display = "block";
        } 
        return false;
 }

的jsfiddle

我在我的网站上设置了一个“生物”栏目,下面有3张雇员和3个div的图片。 我想默认隐藏所有的BIOS,然后只显示与点击图像相关的div,并隐藏所有其他div。

目前,它似乎没有找到元素,因为我得到“未定义”

这是我的HTML到目前为止:

<div onclick="showhide('bill');" class="bio_image"><div class="name">Bill Murray</div></div>
<div onclick="showhide('bill2');" class="bio_image"><div class="name">Bill Murray</div></div>
<div onclick="showhide('bill3');" class="bio_image"><div class="name">Bill Murray</div></div>
<div class="hide" id="bill">BILL</div>
<div class="hide" id="bill2">BILL2</div>
<div class="hide" id="bill3">BILL3</div>

而我的Javascript:

function showhide(id){
        if (document.getElementById) {
          var divid = document.getElementById(id);
          var divs = document.getElementsByClassName("hide");
          for(var div in divs) {
             div.style.display = "none";
          }
          divid.style.display = "block";
        } 
        return false;
 }

的jsfiddle

有任何想法吗? 谢谢!


当使用for(var div in divs)div 不是元素。 迭代JSON对象时使用此表示法。

你想用这个来代替:

for(var i = 0; i < divs.length; i++) {
    divs[i].style.display = "none";
}




hide