Zeige 1 div und alle anderen auszublenden klicken Sie auf mit Javascript

Ich bin die Einrichtung eines "bio" - Abschnitt auf meiner Website, und ich habe 3 Bilder von den Mitarbeitern und 3 divs mit den einzelnen Mitarbeitern bios unten. Ich will gar nicht das bios ist Standard und zeigen dann nur noch die div in Verbindung mit dem Bild, dass geklickt wird, und blenden Sie alle anderen divs.

Derzeit scheint es, wie es ist, nicht zu finden die Elemente, da bin ich immer "undefined"

Hier ist mein HTML so weit:

<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>

Und meine 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

Irgendwelche Ideen? Danke!

  • Sie werden nicht immer müssen if (document.getElementById). Auch ältere Browser nicht document.getElementsByClassName(). Darüber hinaus einige Versionen von IE und anderen Browsern, nicht in der Lage zu tun, eine für in-Schleife, mit .getElementsByClassName() oder .getElementsByName(). Auf diejenigen, die Sie wollen stick mit for(var i=0,l=elementArray.length; i<l; i++).
InformationsquelleAutor user13286 | 2014-03-17
Schreibe einen Kommentar