如何包装图像



我不太理解这个代码:

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);

第一:由于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();
d_row.append('<a>'+img+'</a>');

还是你需要更多的控制?

将其附加到DOM后进行包装,它应该可以工作:

http://jsfiddle.net/5Es6S/

最新更新