我不太理解这个代码:
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/