Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z document.all w firefox'ie
Forum PHP.pl > Forum > Po stronie przeglądarki
m.mix
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?
SirZooro
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';
}
m.mix
heh, dzieki ogromne, faktycznie o tym nie pomyslalem snitch.gif
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 wstydnis.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.