Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][DOM] Ilość elementów w elemencie.
Forum PHP.pl > Forum > Przedszkole
gebp
Proszę o pomoc gdyż DOM i JS na tym poziomie są dla mnie zbyt magiczne.
Przykładowo mam:
  1. <div id="A">
  2. <div id="1"></div>
  3. <div id="2"></div>
  4. <div id="3"></div>
  5. <div id="4"></div>
  6. <div id="5"></div>
  7. <div id="6"></div>
  8. </div>


W jaki sposób z pomocą JS+DOM mogę policzy ile jest div'ów (a ilość ich jest zmienna) w div'ie id=A.

Gdzieś w internecie znalazłem taki skrypt:
  1. var childrens=document.getElementById("A").childNodes; // pobranie listy divów wewnątrz "div"
  2. var divsum=0; // suma divów
  3. for(i=0;i<childrens.length;i++)
  4. { var type=childrens[i].nodeName;
  5. if (type=="DIV")
  6. { divsum++; }
  7. }
  8. alert("Ilość div=" +divsum);


Ale nie działa. Proszę o pomoc.
erix
Kod
var childrens

A cóż to za słowo?

Mi wszystko działa. Podejrzewam, że wywołujesz skrypt bezpośrednio, przed załadowaniem dokumentu (bez onload).
wookieb
Kod
var liczba=document.getElementById("A").getElementsByTagName('div').length;
gebp
Dzięki za odpowiedzi. Jak najbardziej jest ok.

Jednak mam kolejne pytania.
Opis.
na stronę A za pomocą AJAX'a wczytuje stronę B. Strona B jest skryptem PHP w którym znajdują się skrypty javascript. Strona b składa się niejako z dwóch części. Wygląda to mniej więcej tak:
  1. //początek strony
  2. <div>
  3. <div> Jakaść treść </div>
  4. <div> Kolejna terśc m.in. zdjęcia </div>
  5. </div>
  6. <script type="text/javascript">
  7. function A(){...}
  8. function B() {...}
  9. // tutaj w jednej z funkcji znajduje się cześć o którą pytałem wcześniej
  10.  
  11. //koniec strony


Jedna funkcji ( znajdująca się w znacznikach <script></script> poniżej treści ) ma za zadanie zmienić wielkość (dokładnie to szerokość) jednego z divów (np id="A") w zależności od ilości divów znajdujących się w nim.
O ile w FF wszystko jest OK o tyle w IE wywala mi błąd w funkcji javascript, w który znajdują się polecenia, o które wcześniej pytałem.
Moje pytanie brzmi:
Czy IE w jakiś inny sposób pobiera i interpretuje treść strony ?
Jeszcze raz podkreślę że funkcje w JavaScript są na końcu strony.
Czy da się temu jakoś zaradzić?
Mam na razie 2 pomysły jednak wymagają one przebudowy 2 stron.
erix
Cytat
O ile w FF wszystko jest OK o tyle w IE wywala mi błąd w funkcji javascript, w który znajdują się polecenia, o które wcześniej pytałem.

A może byś powiedział, jakie to błędy? Bo za wiele z tego nie wywnioskuje.

Owszem, w IE jest bug z dołączaniem nowych skryptów via AJAX, ale trzeba się najpierw upewnić, czy to to.
gebp
Pluje mi

"document.getElementById(...)' jest pusty lub nie jest obiektem "
no i oczywiście podaje mi linie .
I na pewno dotyczy tych poleceń do odczytu ilości elementów w divie.

Cytat
Owszem, w IE jest bug z dołączaniem nowych skryptów via AJAX, ale trzeba się najpierw upewnić, czy to to.

Co do tego to wszystko jest OK. Korzystam z TEJ klasy AJAX'a i nie ma problemu z dokrzyczanymi skryptami. Sprawdzałem i inne działają. Tak jak pisałem wcześniej w FF wszystko jest OK, a pod IE wygląda tak jakby nie widział / nie było elementów w tym konkretnym divie


Odgrzewam trochę temat.

Stronkę przerzuciłem ( niestety na razie ) na darmowy hosting (niestety po dwakroć). AdresTUTAJ ( hasło === mojaSTRONA).
Wchodząc w galerię i wybierając jedno ze zdjęć pod FF wszystko jest OK.
Pod IE (pomijając błędy związane z umieszczanymi galeriami) nie działa.
Efekt do osiągnięcia winien być:
1. Ładuje się belka.
2. Belka przesuwa się do konkretnego zdjęcia
3. Zdjęcie otoczone zieloną ramką.

A z resztą porównajcie sami.

UWAGA! Strona w bardzo wczesnej budowie. NIE PRZERAZIĆ SIĘ.

P.S. Dlaczego to div id=main ( ten ciemnoniebieski) nie rozciąga się także na te zdjęcia z drugiej lini ?
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.