Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] jQuery insertBefore insertAfter nie dziala ...
Forum PHP.pl > Forum > Przedszkole
Octobus
Witam. Potrzebuje tag img umiescic w tagu a przez jquery w ten sposob ze mam
Kod
<img src="obrazek.jpg"/>

a chce miec
Kod
<a href="obrazek.jpg"><img src="obrazek.jpg"/></a>


Mam kod:
Kod
$("img").each(function(index) {
                $('<a href="obrazek.jpg">').insertBefore($(this));
                $('</a>').insertAfter('.inner');
                
            })


w miejsce obrazek.jpg wstawie sobie pozniej url z img, ale kod niestety nie dziala ;/
Chce przerobic w ten sposob obrazki zeby byly obslugiwane przez fancybox (odmiana lightnox'a)
gargamel
Poczytaj o selektorach o jQuery: http://api.jquery.com/category/selectors/

Takie coś
[JAVASCRIPT] pobierz, plaintext
  1. $('<a href="obrazek.jpg">').
[JAVASCRIPT] pobierz, plaintext
nie ma prawa zadziałać.

Edit:

Poza tym raczej chcesz użyć:
[JAVASCRIPT] pobierz, plaintext
  1. $(this).insertBefore('<a href="obrazek.jpg">');
  2. $(this).insertAfter('</a>');
[JAVASCRIPT] pobierz, plaintext
Octobus
Taki kod:
Kod
$("img").each(function(index) {
                $($(this)).insertBefore('<a href="obrazek.jpg">');
                $($(this)).insertAfter('</a>');
                
            })



Zamienia mi caly tag na " "
tutaj [ http://api.jquery.com/insertAfter/ ] jest napisane:
Kod
.insertAfter( target )


a w przykładach
Kod
$('h2').insertAfter($('.container'));

więc chyba dobrze tego używam. Niestety problem nadal nie rozwiązany ;/
gargamel
Pomyliło mi się z after... Pozatym tak na dobrą sprawę to właśnie after() powinieneś użyć.

I nie $($(this)), tylko $(this)
[JAVASCRIPT] pobierz, plaintext
  1. $(this).before('<a href="obrazek.jpg">');
  2. $(this).after('</a>');
[JAVASCRIPT] pobierz, plaintext
Octobus
Dzieki kolego, niestety jestem noga z js ;/ Już prawie mam jeszcze tylko nie wiem dla czego zamyka sam 1 tag i nie pokazuje mojego zamkniecia ;| chyba trzeba skorzystac z jakiegos innego polecenia ;/. Jak narazie mam tak:
Kod
$("img").each(function(index) {
                $(this).before('<a href="obrazek.jpg">0');
                $(this).after('a</a>');                
            })

i daje mi to:
Kod
<a href="obrazek.jpg">0</a>
<img src="obrazek.jpg"/>
"a"
gargamel
Ok inaczej, zamiast after i before, daj po prostu:

[JAVASCRIPT] pobierz, plaintext
  1. <script type="text/javascript">
  2. $(document).ready(function(){
  3. $("img").each(function() {
  4. $(this).replaceWith( "<a href='"+ $(this).attr("src") +"'>" + "<img src='"+ $(this).attr("src") +"' />" + "</a>" );
  5. })
  6. });
  7. </script>
[JAVASCRIPT] pobierz, plaintext
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.