Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JS] Czy można łaczyć GetElementsByClassName i getElementById?
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
czarek1986
Witam.

Mam pytanie, czy można łaczyć dwie podane w temacie funkcje tak aby osiągnąć efekt odniesienia się do klasy "klasa2"
 w HTML w takim kodzie

  1.  
  2. <div id="blok1">
  3.  
  4.     <div class="klasa1">
  5.  
  6.         <div class="klasa2"></div>
  7.  
  8.     </div>
  9.  
  10. </div>
  11.  



Nie chce tego robić za pomocą document,GetElementsByCLassName("klasa2") gdyż jak będę miał więcej niż jedna takich klas to nie będzie wiadomo o którą konkretnie mi chodzi. Wolałbym raczej aby odwoływac się do tej klasy stopniowo w sposób #blok1->.klasa1->klasa2. Próbowałem zrobić to w ten sposób:

document.getElementById("blok1").getElementByClassName("klasa1").getElementByClassName("klasa2") Oczywiście ta metoda nie działa. Może jest na to jakiś inny sposób?
Quantum
Pozostaje tylko "childNodes" > google. Jeżeli chcesz pobierać elementy DOM w stylu selektorów CSS, zastosuj jakiegoś frameworka JS, w mojej sygnaturce masz linki do jQuery i Mootools. Jeżeli chcesz czysty JS możesz robić tak winksmiley.jpg :

[JAVASCRIPT] pobierz, plaintext
  1. <script type="text/javascript">
  2. window.onload = function()
  3. {
  4. var blok1 = document.getElementById('blok1').childNodes;
  5.  
  6. for(var i = 0; i < blok1.length; i++)
  7. {
  8. if(blok1.item(i).className == 'klasa1')
  9. {
  10. var klasa1 = blok1.item(i);
  11. break;
  12. }
  13. }
  14.  
  15. klasa1 = klasa1.childNodes;
  16.  
  17. for(var i = 0; i < klasa1.length; i++)
  18. {
  19. if(klasa1.item(i).className == 'klasa2')
  20. {
  21. var klasa2 = klasa1.item(i);
  22. break;
  23. }
  24. }
  25.  
  26. klasa2.style.background = '#0eef13';
  27. }
  28. </script>
[JAVASCRIPT] pobierz, plaintext


  1. <div id="blok1">
  2. blok1
  3. <div class="klasa1">
  4. klasa1
  5. <div class="klasa2">klasa2</div>
  6.  
  7. </div>
  8.  
  9. </div>


ten sam kod co wyżej w jQuery:

[JAVASCRIPT] pobierz, plaintext
  1.  
  2. $(document).ready(function() {
  3.  
  4. $('#blok1 .klasa1 .klasa2').css('background', '#0eef13');
  5.  
  6. });
  7.  
[JAVASCRIPT] pobierz, plaintext
czarek1986
Aha dzięki, to już bardzo pomocna wskazówka. 
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.