Div style n'est pas défini (Javascript)
J'ai trouvé ce script dans 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>
Mais il dit, div.style indéfini. Pourquoi? 🙂
- Dans le navigateur?
- quel navigateur vous utilisez ??
- Derniers FF, 17.0.1
- La version de IE moins de 9 ne prend pas en charge cette propriété
Vous devez vous connecter pour publier un commentaire.
Vous ne devez jamais utiliser un pour-en boucle pour que.
renvoie une NodeList, qui n'héritent pas de
Array.prototype
, mais il est similaire à certains aspects. C'est une liste de nœuds, tout comme le nom le dit. Cela signifie qu'il alength
propriété et ne doit être accessible à l'aide d':Et voici comment vous devez cachent en réalité un élément.
EDIT: dans les boucles sont utilisées pour faire une boucle dans les propriétés de l'objet
Remplacer
avec
divs
, le résultat de getElementsByClassName, n'est pas vraiment un tableau, mais une NodeList, un tableau comme objet et que vous avez été une itération sur ses propriétés, et non ses éléments.Assurez-vous que tous les éléments de votre
for-in
boucle sont des éléments du DOM. C'est une bonne pratique pour filtrerfor-in
boucle avec unhasOwnProperty()
: