Autor | Zpráva | ||
---|---|---|---|
WMPopi Profil |
#1 · Zasláno: 8. 2. 2011, 21:10:14
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 |
#2 · Zasláno: 8. 2. 2011, 21:23:32
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 |
#3 · Zasláno: 8. 2. 2011, 21:42:07
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í |
||
Časová prodleva: 13 let
|
0