Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]Zmiana stylu wielu elementów
Forum PHP.pl > Forum > Przedszkole
Mlodycompany
Witam. Mam taki kodzik
  1. function pokazFormy(id){
  2. var id_t = "id_" + id + "_t";
  3. var id_f = "id_" + id + "_f";
  4. var t = document.getElementById(id_t);
  5. var f = document.getElementById(id_f);
  6.  
  7. t.style.display = "none";
  8. f.style.display = "block";
  9. }

  1. <tr>
  2. <th>
  3. <span id="id_'.$row[0].'_t">'.$row['ID'].'</span>
  4. <span id="id_'.$row[0].'_f" style="display: none;"><input value="'.$row[0].'"></span>
  5. </th>
  6. <th>
  7. <span id="id_'.$row[0].'_t">'.$row[1].'</span>
  8. <span id="id_'.$row[0].'_f" style="display: none;"><input value="'.$row[1].'"></span>
  9. </th>
  10. <th>
  11. <span id="id_'.$row[0].'_t">'.$row[2].'</span>
  12. <span id="id_'.$row[0].'_f" style="display: none;"><input value="'.$row[2].'"></span>
  13. </th>
  14. <th>
  15. <span id="id_'.$row[0].'_t">'.$row[3].'</span>
  16. <span id="id_'.$row[0].'_f" style="display: none;"><input value="'.$row[3].'"></span>
  17. </th>
  18. <th>
  19. <span id="id_'.$row[0].'_t">'.$row[4].'</span>
  20. <span id="id_'.$row[0].'_f" style="display: none;"><input value="'.$row[4].'"></span>
  21. </th>
  22. <th>
  23. <span id="zmien_'.$row[0].'"><a href="#" onclick="pokazFormy(\''.$row[0].'\');">Zmień</a></span>
  24. <span id="zapisz_'.$row[0].'" style="display: none;">Zapisz</a>
  25. <th>
  26. <th><a href="#">Usuń</a><th>
  27. </tr>

Teoretycznie powinno wszystko działać, ale w praktyce jest na odwrót. Otóż po kliknięciu Zmień wszystkie spany o id="id_1_t" powinny zniknąć a w ich miejsce pojawić spany id="id_1_f" ale tak nie jest. Tylko 1 kolumna zmienia się a reszta pozostaje bez zmian. Proszę o pomoc.
DiH
Dzieje się tak dlatego, że atrybut id nadajemy tylko elementom unikalnym w dokumencie - tj. w jednym dokumencie może zaistnieć tylko jeden element o konkretnej wartości atrybutu id. Masz do wyboru: albo użyć klasy przeznaczonej do zmiany właściwości elementów po ich klasie, albo użycie getElemenstByTagName.

Link do wspomnianej klasy: http://robertnyman.com/2008/05/27/the-ulti...name-anno-2008/

Edit: Jeżeli wywalisz to złomowisko spanów, i zamienisz to na zwykłe dwa divy stojące obok siebie, służące jako kolumny, to Twój problem zniknie. Nadasz wtedy jednemu divowi odpowiedni id, i po kliknięciu go ukryjesz.

  1. <div id="lewa" style="float:left">LEWA</div>
  2. <div id="prawa" style="float:left">PRAWA</div>
  3. <div style="clear:both"><a href="java script: lewa.style.display='none'">Ukryj</a></div>

Ot, cały kod.
Mlodycompany
Zrobiłem troche na około tzn. pododawałem do id spana jeszcze numer kolumny i funkcje w petle no i działa, ale wielkie dzięki
DiH
Zauważ jednak o ile mniej kodu, i jak o wiele przejrzyściej możesz to zrobić za pomocą divów. Chociaż spróbuj winksmiley.jpg
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.