![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 28.04.2013 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam taką funkcję: Kod function userdetails (id) { var detailrows = id.parent.parent.parent.parent.getElementsByName('details'); var display = detailrows[0].style.display == 'none' ? '' : 'none'; id.innerHTML = display == '' ? 'Mniej szczegółów' : 'Więcej szczegółów'; for (var i = 0; i < detailrows.length; i++) detailrows[i].style.display = display; } i jak ją wywołuje link w stopce tabeli (href="java script:userdetails(this)" - bez spacji, nie wiem dlaczego sama się dodaje) to wywala błąd, że nie ma metody "parent". Wygląda na to, że this nie zwraca dobrego wskaźnika do obiektu. OCB? Próbowałem także w onclick - to samo. Ten post edytował PKua 8.05.2013, 14:21:58 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 717 Pomógł: 120 Dołączył: 18.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Cytat id.parent.parent.parent.parent.getElementsByName('details'); bo to nie jest zbyt elegancki kod. Lepiej pomyśl i napisz co chcesz zrobić, gdzie w twojej strukturze HTML masz element "details"? Ten post edytował PrinceOfPersia 8.05.2013, 15:36:16 -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 28.04.2013 Ostrzeżenie: (0%) ![]() ![]() |
Problem w tym, że id.innerHTML też nie istnieje...
'details' to wartość atrybutu name w każdym rzędzie tr w tabeli, który domyślnie jest ukryty. Takich tabelek jest kilkanaście, i wyglądają tak:
CreateTable tworzy tabelkę. Parametry to po kolej: tytuł, zawartość, nagłówek, stopka, styl tabeli, styl nagłówka, styl stopki, true/false czy używać alternatywnej kolorystyki dla belki tytułu, wartość colspan dla tytułu. Zatem w drzewie DOM powinno to być tak: table > tfoot > tr > td > a. Dając to parent cofam się do table i szukam wszystkich rzędów z atrybutem name="details". Jednak id w ogóle nie wskazuje na a... //edit: Problem rozwiązany. Okazuje się, że getElementsByName działą tylko bezpośrednio dla document. Zamiast tego użyłem klas i wszystko śmiga ![]() DO ZAMKNIĘCIA Ten post edytował PKua 9.05.2013, 13:28:44 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 09:03 |