Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JS] Klasa i getElementById
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
comanderv
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
nospor
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
comanderv
przepraszam literówka...
oczywiście stosuje document.getElementById ...
nawet jesli za this.d przypisze document.location wciąż mam undefined
erix
A wywołujesz to w ogóle po umieszczeniu tych elementów w DOM? (czyt: wyzwalasz funkcję w odpowiednim miejscu?)
comanderv
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?
wookieb
Wrzuć to online.
comanderv
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)
wookieb
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
comanderv
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
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.