Div style ist nicht definiert (Javascript)
Fand ich dieses Skript in stackoverflow.
function showhide(id){
if (document.getElementById) {
var divid = document.getElementById(id);
var divs = document.getElementsByClassName("hideable");
for(var div in divs) {
div.style.display = "none";
}
divid.style.display = "block";
}
return false;
}
<a href="#" onclick="showhide('features');" >features</a>
<a href="#" onclick="showhide('design');" >design</a>
<a href="#" onclick="showhide('create');" >create</a>
<div class="hideable" id="features">Div 1</div>
<div class="hideable" id="design">Div 2</div>
<div class="hideable" id="create">Div 3</div>
Aber es sagt, div.Formatvorlage nicht definiert. Warum? 🙂
In welchem browser?
welchen browser verwendest du ??
Neueste FF 17.0.1
IE version kleiner als 9 unterstützt diese Eigenschaft nicht
welchen browser verwendest du ??
Neueste FF 17.0.1
IE version kleiner als 9 unterstützt diese Eigenschaft nicht
InformationsquelleAutor user1632298 | 2013-01-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie nie verwenden Sie eine for-in-Schleife.
gibt eine NodeList, die Erben nicht aus
Array.prototype
, aber es ist ähnlich in einigen Aspekten. Es ist eine Liste von Knoten, wie schon der name sagt. Das bedeutet, es hat einelength
Eigentum und sollte nur zugegriffen werden mit:Und hier ist, wie Sie eigentlich sollte um ein element auszublenden.
InformationsquelleAutor flavian
EDIT: für die in Schleifen verwendet werden, um eine Schleife durch Objekt-Eigenschaften
InformationsquelleAutor karaxuna
Ersetzen
mit
divs
, das Ergebnis getElementsByClassName, ist nicht wirklich ein array, aber ein NodeList, ein array-ähnliches Objekt, und Sie waren die Iteration auf Ihre Eigenschaften, nicht Ihre Elemente.InformationsquelleAutor Denys Séguret
Stellen Sie sicher, dass alle Elemente in Ihrer
for-in
Schleife sind DOM-Elemente. Es ist eine gute übung, filterfor-in
Schleife mit einemhasOwnProperty()
:InformationsquelleAutor Konstantin Dinev