Autor Zpráva
karelvit
Profil *
Dobry den poťreboval bych po stisknutí tlačítka odkrýt něco co je skryté a z nějakého důvodu to nefunguje mohli by jste mi prosím poradit jak to opravit?

skrývám část textu tímto:

.jmenoclassy { 
display: none;
} 

a odkrývám tímto:

function odkryt() {
    
  fhs = document.getElementsByClassName('jmenoclassy');  
  if(fhs.style.display != 'block') fhs.style.display = 'block';  
  else fhs.style.display = 'none';  
  
}
juriad
Profil
fhs není jeden element, ale „an array-like object of all child elements which have all of the given class names“.
karelvit
Profil *
juriad:
a jak by se to dalo vyřešit? V js nejsem zběhlý.
Fisir
Profil
Reaguji na karelvita:
Záleží na tom, co chceš dělat. Chceš odkrýt pouze první element, který má třídu jmenoclassy, nebo všechny?

V prvním případě stačí za metodu getElementsByClassName() doplnit výběr prvního prvku pole – [0]. V tom druhém bude potřeba cyklus:
for(var i = 0; i < fhs.length; i++){
    var c = fhs[i];
    if(c.style.display != 'block') // …

Dále bych doporučil přidat před deklaraci proměnné fhs klíčové slovo var, ať nevytváříš globální proměnnou.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: