Как обернуть изображение? - PullRequest
1 голос
/ 28 марта 2012

Я не очень хорошо понимаю этот код:

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

Кажется, для создания тега изображения: <img src="" class="photo" ... />.Я просто хочу обернуть это ссылкой: <a href="#aaaa"></a>

Но я пытаюсь это, и это не работает:

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

Я также попробовал просто:

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

Наконец, код добавляет img к другому элементу, подобному этому:

d_row.append(img);

Ответы [ 3 ]

1 голос
/ 28 марта 2012

Первое: , поскольку img создается как объект jQuery, вам не нужно писать $(img) и снова оборачивать его в объект jQuery.Достаточно будет просто img.

Секунда: , если img еще не было append добавлено в документ, то вы не можете изменить его на месте с помощью wrap().

Третье: wrap() предназначено для возврата содержимого обернутого объекта, а не самой обертки.Вам нужно позвонить parent(), чтобы получить это.

Попробуйте:

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

(вам не нужно закрывать </a>, jQuery создаст его автоматически)

http://jsfiddle.net/TMeP6/

Однако: , поскольку img больше не является изображением, имя переменной img является неточным и может привести к путанице.Я бы создал новое имя переменной (a_img или что-то в этом роде) и сохранил бы его в этом месте:

a_img = img.wrap('<a>').parent();
0 голосов
/ 28 марта 2012

Заверните его после добавления его в DOM, и оно должно работать:

http://jsfiddle.net/5Es6S/

0 голосов
/ 28 марта 2012
d_row.append('<a>'+img+'</a>');

Или вам нужно больше контроля?

...