Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CSS][HTML][JavaScript] Wstawianie elementu przed wybranym
Forum PHP.pl > Forum > Przedszkole
Micky
Problem wydaje się dość prosty do rozwiązania.
Mam element
  1. <div class="info">Treśc informacji</div>

Wstawić przed tym elementem obiekt <img> i również za nim obiekt <img>

Próbowałem w następujący sposób:
[JAVASCRIPT] pobierz, plaintext
  1. var allDivs = document.getElementsByTagName('div');
  2. for(var q = 0; q < allDivs.length; q++) {
  3. if(allDivs[q].className == "info") {
  4. allDivs[q].top = document.createElement('img');
  5. allDivs[q].top.src = "images/DCI-top.png";
  6.  
  7. allDivs[q].top.className = "DCI-top";
  8. }
  9. }
[JAVASCRIPT] pobierz, plaintext

Ale nie działa więc próbowałem też tak (dodałem id="info1" żeby pozbyć się pętli, która mogłaby być przyczyną nie działania):
[JAVASCRIPT] pobierz, plaintext
  1. var info = document.getElementById("info1");
  2. var DCItop = document.createElement('img');
  3. DCItop.className = "DCI-top";
  4. document.body.insertBefore(DCItop,info);
[JAVASCRIPT] pobierz, plaintext

I też niepowodzenie. Próbowałem także bez ".body" w ostatniej linijce instrukcji ale bez powodzenia.

Uczę się Javascriptu od tygodnia i szukałem sproro rozwiązania mojego problemu.
Z góry dziękuję za odpowiedź!
Skie
Być może w Twoim kodzie body nie jest bezpośrednim rodzicem DIVa 'info1' ?
Nie widzę całego kodu HTML, więc nie sprawdzę tego dokładnie, ale może spróbuj tak:

Kod
info.parentNode.insertBefore(DCItop,info);


zamiast tego:

Kod
document.body.insertBefore(DCItop,info);
Micky
Dzięki wielkie za pomoc. Teraz działa.
thek
Nie działa to we wszystkich przeglądarkach, ale problem ten jest rozwiązywalny w CSS. Poczytaj o pseudoselektorach :before i :after
Może to więc wyglądać tak:
  1. div.info:before {
  2. content: url(image_before.gif);
  3. }
  4. div.info:after {
  5. content: url(image_after.gif);
  6. }
Od razu zaznaczam, że IE sobie kiepsko z tym radzi, choć Opera i przeglądarki na silniku Gecko (Fx choćby) nie mają z tym problemu
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.