2012-03-28 3 views
1

Ich verstehe nicht sehr gut diesen Code:Wrap Bild Jquery und Javascript

var img = $('<img/>', {class: "photo", src: photo.url_n, width: wt, height: ht}).css("margin", border + "px"); 

Es scheint einen Image-Tag zu erstellen: <img src="" class="photo" ... />

Ich möchte nur um es wickeln mit einem Link: <a href="#aaaa"></a>

Aber ich dies versucht und es funktioniert nicht:

$(img).wrap('<a></a>'); 

I auch versucht haben, nur:

img.wrap('<a></a>'); 

Schließlich fügen Sie den Code auf ein anderes Element wie dies das img:

d_row.append(img); 

Jede Idee? Danke.

+0

tat Sie haben versucht: '$ (img) .wrap ('');'? –

Antwort

1

Erstens: seit img als jQuery-Objekt erstellt wird, müssen Sie nicht $(img) schreiben und es in einem jQuery-Objekt wieder einpacken. Nur img wird ausreichen.

Zweitens: wenn img nicht append ed auf das Dokument noch gewesen, dann können Sie nicht ändern, es an Ort und Stelle mit wrap().

Drittens:wrap() ist entworfen, um den Inhalt des umschlossenen Objekts, nicht der Wrapper selbst zurückgeben. Sie müssen parent() anrufen, um das zu bekommen.

Versuchen:

img = img.wrap('<a>').parent(); 

(Sie die Schließung nicht brauchen </a>, wird jQuery automatisch generieren)

http://jsfiddle.net/TMeP6/

jedoch: seit img nicht mehr ist ein Bild, Der Variablenname img ist ungenau und möglicherweise verwirrend. Ich würde einen neuen Variablennamen erstellen (a_img oder etwas) und speichern Sie es in diesem statt:

a_img = img.wrap('<a>').parent(); 
+0

Danke, es hat gut funktioniert !! – Alvaro

0
d_row.append('<a>'+img+'</a>'); 

Oder benötigen Sie mehr Kontrolle?