Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JS] Klasa i getElementById, getElementById wywolany w klasie zwraca undefined
comanderv
post
Post #1





Grupa: Zarejestrowani
Postów: 87
Pomógł: 1
Dołączył: 2.12.2008

Ostrzeżenie: (0%)
-----


witam,
piszę sobie małą klasę w której potrzebuje odwołać się do istniejącego elementu HTML, metoda getElementById nie skutkuje...
wygląda to mniej więcej tak:
  1. function klasa()
  2. {
  3. this.x=parseInt(Math.random()*300);
  4. this.y=parseInt(Math.random()*100);
  5.  
  6. //pare innych pierdół
  7.  
  8. var dzieci = document.getElementById('div2').children;
  9. this.d = dzieci.length;
  10. }
  11.  
  12. //wywolanie alert(this.d) drukuje mi 'undefined'


w pisaniu obiektowym a już tym bardziej w JSie jestem dość raczkujący, prosiłbym o pomoc smile.gif

Ten post edytował comanderv 22.02.2011, 11:37:59
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Dziwna tendencja:
wrzuacają coś do klasy i już myślą że to wina klasy :/

getElementById nigdzie ci nie zadziala bo nie ma czegos takiego jak getElementById
Jest:
document.getElementById


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
comanderv
post
Post #3





Grupa: Zarejestrowani
Postów: 87
Pomógł: 1
Dołączył: 2.12.2008

Ostrzeżenie: (0%)
-----


przepraszam literówka...
oczywiście stosuje document.getElementById ...
nawet jesli za this.d przypisze document.location wciąż mam undefined
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A wywołujesz to w ogóle po umieszczeniu tych elementów w DOM? (czyt: wyzwalasz funkcję w odpowiednim miejscu?)


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
comanderv
post
Post #5





Grupa: Zarejestrowani
Postów: 87
Pomógł: 1
Dołączył: 2.12.2008

Ostrzeżenie: (0%)
-----


caly kod JS zapisany jest zaraz przed zamkniecie elementu body,
do tego wywolanie mam w $(window).load zeby sie zdarzylo wszystko przed wywolanie zaladowac...
klasa nie widzi wgl ze jest w jakims documencie... ale zeby smieszniej bylo:
  1. function klasa()
  2. {
  3. this.x=parseInt(Math.random()*300);
  4. this.y=parseInt(Math.random()*100);
  5.  
  6. var woda = document.getElementById('woda');
  7. var ryby = woda.getElementsByTagName("img");
  8. var imgTag = document.createElement("img");
  9. imgTag.src='ryba.png';
  10. imgTag.setAttribute("position","top","left");
  11. imgTag.style.position='absolute';
  12. imgTag.style.top=this.y+'px';
  13. imgTag.style.left=this.x+'px';
  14. imgTag.className ="ryba";
  15.  
  16. this.p = ryby[0];
  17. // this.p = document.location; tez undefined
  18.  
  19. woda.appendChild(imgTag);
  20. }

nowego img tworzy, wewnatrz zlapanego przez getElementById diva, dalej juz lezy..
gdzie jest jakis blad?

Ten post edytował comanderv 22.02.2011, 11:43:14
Go to the top of the page
+Quote Post
wookieb
post
Post #6





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Wrzuć to online.


--------------------
Go to the top of the page
+Quote Post
comanderv
post
Post #7





Grupa: Zarejestrowani
Postów: 87
Pomógł: 1
Dołączył: 2.12.2008

Ostrzeżenie: (0%)
-----


Proszę: http://rytroman.za.pl/maping/fish/fish.html

co chce wgl zrobic: zliczyc ilosc dzieci w divie woda, zeby id nadac o jeden wiekszy kazdemu nowemu elementowi (nie umiem licznika w klasie zrobic tongue.gif)

Ten post edytował comanderv 22.02.2011, 11:47:30
Go to the top of the page
+Quote Post
wookieb
post
Post #8





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Jak w funkcji ryba robisz odwołanie do this.p i tworzysz obiekt tej funkcji za pomocą
Kod
new ryba();

To this w funkcji odnosi się do tworzonego obiektu a nie obiektu window.
Sprawdź
[JAVASCRIPT] pobierz, plaintext
  1. alert(mam.x+'--'+mam.y+' '+mam.p);
  2.  
[JAVASCRIPT] pobierz, plaintext


Licznik:
[JAVASCRIPT] pobierz, plaintext
  1. function funkcja() {
  2. this.constructor.prototype.licznik++;
  3. }
  4. funkcja.prototype.licznik = 0;
  5. new funkcja();
  6. new funkcja();
  7. console.log(funkcja.prototype.licznik);
[JAVASCRIPT] pobierz, plaintext


--------------------
Go to the top of the page
+Quote Post
comanderv
post
Post #9





Grupa: Zarejestrowani
Postów: 87
Pomógł: 1
Dołączył: 2.12.2008

Ostrzeżenie: (0%)
-----


o Boże... moja spostrzegawczość... no tak sleep.gif
pisałem że jestem raczkujący ale nie aż tak sleep.gif
to teraz sam siebie zadziwiłem...

Dzięki za poświęcony czas na moją głupotę heh ...ale wstyd haha.gif

edit: licznik swietny, eliminuje moje wylawianie childrensów smile.gif dziekuje smile.gif

Ten post edytował comanderv 22.02.2011, 12:04:01
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 16:19