![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 21.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
musze zrobic funkcje js, ktora umozliwia pokazywanie badz ukrywanie okreslonych elementow na stronie (np kilka wierszy tabeli, ale nie wszystkie). Na poczatek chcialem uzyc funkcji: CODE <script type=" text/javascript"> function showHidden(obj){ obj = document.getElementById(obj); obj.style.display == 'none' ? obj.style.display = '' : obj.style.display = 'none'; } i nadawac <tr id=jakies> ale problem jest taki, ze gdy nadaje kilku elementom takie samo id to wyswietlany/ukrywany jest tylko pierwszy element. No to troche na okolo zrobilem to w ten sposob: CODE function showHidden(typ){ var wszystkie=document.all; for (i=0; i<wszystkie.length; i++) { if (wszystkie[i].id==typ) { obj=wszystkie[i]; obj.style.display == 'none' ? obj.style.display = '' : obj.style.display = 'none'; }; }; } i ku mojemu zdziwieniu i zadowoleniu funkcja dziala, ale niestety tylko w IE. Domyslam sie, ze problem dotyczy wlasnie document.all, bo wywolanie alert(wszystkie.length); w Mozilli nie pokazuje zadnych wynikow, a w IE pokazuje ilosc obiektow. Ktos wie w czym tkwi problem? i jak go obejsc? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 243 Pomógł: 32 Dołączył: 14.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Firefox stara się być zgodny ze standardami, i stąd te problemy. document.all nie ma w standardzie, więc nie możesz tego użyć, podobnie nie możesz używać takich samych identyfikatorów elementów (muszą być one unikalne). Spróbuj dodawać suffix z numerem do id elementu, i napisać coś w tym stylu:
Kod function showHidden(typ)
{ for (n = 1; obj = document.getElementById(typ + '_' + n); ++n) obj.style.display == 'none' ? obj.style.display = '' : obj.style.display = 'none'; } -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 21.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
heh, dzieki ogromne, faktycznie o tym nie pomyslalem
![]() ja i tak te elementy generowalem dynamicznie wiec dodanie im kolejnych numerkow nie stanowi problemu.. teraz dziala wysmienicie a przeciez takie to proste - for wykonuje sie dopoki drugi element, czyli obj = document.getElementById(typ + '_' + n), jest prawdziwy, a jak tutaj bede zmienial nazwe to przejrzy wszystkie potrzebne mi elementy... ehhh... az mi glupio teraz ![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 19:24 |