Autor Zpráva
WMPopi
Profil
Ahoj,
pomocí js skrývám/zobrazuji řádky v tabulce. V ie 6 mi skript nefunguje a křičí hlášku, kterou si nedokážu vysvětlit: Nelze získat vlastnost display. Neplatný argument.

radky = document.getElementsByTagName("tr");
for (i in radky) {
	radky[i].style.display = "table-row";
}


Nevěděl by někdo proč, případně jak to ošetřit? Děkuji
Chamurappi
Profil
Reaguji na WMPopiho:
Nelze získat vlastnost display
Správně by hláška měla říkat, že ji nelze nastavit. Všechny Explorerové až do verze 7 (včetně) neznají tabulkové hodnoty display, o tom jsi nikdy neslyšel?

Pokud skrytí provádíš tím, že nastavuješ atribut style="display: none", pak můžeš řádek zviditelnit tak, že přiřadíš do style.display prázdný řetězec (tím zrušíš display v dotyčném atributu). Nebo můžeš přidávat/odebírat třídu starající se o skrytí. Nejhloupější možností by bylo testovat prohlížeč a v Explorerech nastavovat display: block.

for (i in radky)
Tohle není vhodný postup procházení NodeListů (a polí). Do i se ti může dostat i jiný řetězec než ten s číslem indexu.
WMPopi
Profil
Chamurappi:
Neslyšel, js používám jen na takovéhle "doplňky", tak jsem se s tím ještě nesetkal.
Nicméně mě taky napadlo to řešit přehazováním className :-) Šlo mi o vysvětlení proč to tak je, tedy děkuji.

Jen jsem se trošku zasekl na tom, že jeden řádek má několik tříd a taky na tom, že po zobrazení chci skrýt jen ty původně skryté řádky, vyřešil jsem následovně:

radky[i].className = radky[i].className.replace("hidden", "zobrazeno"); // při zobrazení
radky[i].className = radky[i].className.replace("zobrazeno", "hidden"); // při skrytí

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: