Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JS] Błąd: missing ; before statement
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
onlyX
mam taką funkcję:
  1. function setBehaviour(){
  2. var global linki = document.getElementById('komentarze').getElementsByTagName('a'); // <--- bląd
  3. for(i=0; i < linki.length; i++){
  4. if (linki[i].className=='answer'){
  5. linki[i].onclick = function() {return userAnswer(linki[i]);}; // <--- tu mi to potrzebne
  6. }
  7. }
  8. }


i w zaznaczonej linijce debuger FF wyrzuca mi taki błąd:
  1. Błąd: missing ; before statement
  2. Plik źródłowy: file:///E:/PROJEKTY/css%20exp/jogger%20v.1.5/testy%20js.html
  3. Wiersz: 25, Kolumna: 12
  4. Kod źródłowy:
  5. var global linki = document.getElementById('komentarze').getElementsByTagName('a');


nie rozumiem jeszcze wszystkiego co JS do mnie mówi. Może mi ktoś wytłumaczyć co robię źle?
nospor
a te "global linki" to nazwa zmiennej? Zmienne nie moga miec spacji. zamien na, np: globallinki

edit: a nie, widze, ze zmienna to "linki". Na grzyba dajesz global? js to nie php
onlyX
to co mam zrobić, żeby w linijce:
  1. linki[i].onclick = function() {return userAnswer(linki[i]);}; // <--- tu mi to potrzebne

nie wyrzucało mi undefined dla argumentu tej funkcji?
nospor
wewnatrz nowej dynamicznej funkcji dla zdarzenia, ten numer nie przejdzie. zrob tak:
Kod
linki[i].onclick = function() {return userAnswer(this);};
onlyX
Właśnie taki problem, że jak biorę this, to ładuje tam adres dokumentu, a nie referencję do elementu. Tego już probowałem.

Co mam począć? smile.gif
nospor
dziwne, mi jakos dziala:
  1. <div id="komentarze">
  2. <a href="jakisurl" id="testowyA">aaaaa</a>
  3. </div>
  4.  
  5. <script language="javascript">
  6. function setBehaviour(){
  7. var linki = document.getElementById('komentarze').getElementsByTagName('a'); // <--- bląd
  8. for(i=0; i < linki.length; i++){
  9. linki[i].onclick = function() {alert(this.id);return false;}; // <--- tu mi to potrzebne
  10. }
  11. }
  12. setBehaviour();
  13. </body>

Po klikniecu w link wyswietli nam sie id tego <a>
onlyX
Mało precyzyjnie sie wyraziłem.
Chodziło mi o to, że nie mogę tam dać this jako argument funkcji:
  1. linki[i].onclick = function() {
  2. return userAnswer(this);
  3. };

bo wtedy funkcja userAnswer pobiera adres dokumentu a nie referencję do elementu.
Nie wiem jak to rozwiązać.
nospor
no ale ja ci pokazalem, ze dostajesz tam adres do elementu a nie dokumentu. Skad wiesz ze do dokumentu dostajesz referencje? Mi na kazdej przegladarce daje element a tobie dokument? No chyba nie smile.gif (ale moge sie mylic winksmiley.jpg )
onlyX
Ja podaję tam this, jako argument kolejnej funkcji, która tam wyrzuca go w alercie jako "file://E:/katalo/plik.html". W sposób w jaki ja to zapisałem, nie działa jak chcę.
nospor
a w href tego A masz "file://E:/katalo/plik.html" ? Bo jesli wyswietlasz this dla A, to wlasnie on wyswietla hrefa, ale defacto jest to obiekt A. Nadaj mu jakies ID, i wyswietl this.id by sie upewnic czy ja mam racje czy ty smile.gif
onlyX
Teraz uderzam z rozpędu w ścianę.
Ten wyjątek mnie wyprowadził w pole. Spodziewałem się standardowego: [HTML Object] czy coś, a tu mi hrefa wrzuca.

Głupio mi zapadam się pod ziemię...
... i dzięuję tongue.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.