Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: JS Menu zaznaczeniowe
Forum PHP.pl > Forum > Po stronie przeglądarki
berus4
Mam taki problem z jednym kodem:
  1. var nod = document.getElementById("zwi1").childNodes.length;
  2. for (i = 0; i < nod.childNodes.length; i++)
  3. {
  4. if (nod[i].nodeType == 1)
  5. nod[i].className = "";
  6. }
  7. document.getElementById(id).className = "selected";


Powinien on robić menu które pozwalało by zaznaczać tylko jedną opcje. Kod html elementu zwi1 natomiast wygląda tak:
  1. <div id="zwil" class="elementy">
  2. <span class="selected" id="grup16"><a href="javascript:pobierzdane('grup16');"><p>Element 1</p></a></span>
  3. <span id="grup17"><a href="javascript:pobierzdane('grup17');"><p>Element 2</p></a></span>
  4. </div>


Jednak wyskakuje mi błąd że element zwi1 nie ma potomków. Co tutaj jest źle?
goffyy
Sprobuj tak:

  1. var nod = document.getElementById("zwi1").childNodes;
  2.  
  3. for (i = 0; i < nod.length; i++)
  4. {
  5. if (nod[i].nodeType == 1)
  6. nod[i].className = "";
  7. }
  8.  
  9. document.getElementById(id).className = "selected";


To jest pisane z glowy ale powinno byc poprawne. Z drugiej strony nie rozumiem co chcesz tym zdzialac smile.gif
lopik
Pierwsze piszesz tak: var nod = document.getElementById("zwi1").childNodes.length;
później w pętli tak: nod.childNodes.length;

co daje wynik: document.getElementById("zwi1").childNodes.length.childNodes.length - a to jest nie poprawne;

Jeśli chcesz przejść po wszystkich elementach childNodes to musisz napisać tak:
var nod = document.getElementById("zwi1").childNodes; i wtedy twoja pętla jest poprawna, tak jak napisał goffyy.

PS. Napisz może, co chcesz osiągnąć, bo ten kod jakoś dziwnie wygląda. (;
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.