jQuery - 使用锚标记包装图像标记列表

时间:2011-03-22 04:42:57

标签: jquery

我需要这样做:

<div class="image-dump">
<img src="dir/file1.jpg"/>
<img src="dir/file2.jpg"/>
<img src="dir/file3.jpg"/>
<img src="dir/file4.jpg"/>
</div>

渲染如下:

<div class="image-dump">
<a href="dir/file1.jpg" rel="group" class="overlay"><img src="dir/file1.jpg"/></a>
<a href="dir/file2.jpg" rel="group" class="overlay"><img src="dir/file2.jpg"/></a>
<a href="dir/file3.jpg" rel="group" class="overlay"><img src="dir/file3.jpg"/></a>
<a href="dir/file4.jpg" rel="group" class="overlay"><img src="dir/file4.jpg"/></a>
</div>

注意: href的值需要从img的src值中拉出,

请帮助!!

3 个答案:

答案 0 :(得分:5)

$('.image-dump > img').wrapAll(function() {
    return $('<a />', { 'href': this.src, 'rel': 'group', 'class': 'overlay' });   
});

jsFiddle

输入

<div class="image-dump">
    <img src="dir/file1.jpg"/>
    <img src="dir/file2.jpg"/>
    <img src="dir/file3.jpg"/>
    <img src="dir/file4.jpg"/>
</div>

输出

<div class="image-dump">
<a href="dir/file1.jpg" rel="group" class="overlay"><img src="dir/file1.jpg"></a>
<a href="dir/file2.jpg" rel="group" class="overlay"><img src="dir/file2.jpg"></a>
<a href="dir/file3.jpg" rel="group" class="overlay"><img src="dir/file3.jpg"></a>
<a href="dir/file4.jpg" rel="group" class="overlay"><img src="dir/file4.jpg"></a>
</div>

答案 1 :(得分:2)

$('div.image-dump img').each(function(){
    $(this).replaceWith('<a href="' + this.src + '" rel="group" class="overlay"><img src="' + this.src + '" /></a>');
});

答案 2 :(得分:1)

试试这个:

$(".image-dump img").each(function(){
 var anch = $("a")
 anch.attr("href", $(this).attr("src"));
 anch.attr("rel", "group");
 $(this).wrap(anch);
});