1

有这个块:

jQuery(document).ready(function($) {
$("img[src$='.jpeg'], img[src$='.jpg'], img[src$='.png'], img[src$='.gif']").wrap('<div class="b-img"/>').each(function() {
        var src = $(this).attr('src');
        var a = $('<a/>').attr('href', src).addClass('img-link').colorbox();    
        $(this).wrap(a);
        });
})(jQuery);

之后有链接,<a href=""></a><img src>...但我需要<img src>之前<a href="">

4

2 回答 2

2

您可以使用after()而不是wrap

jQuery(document).ready(function($) {
$("img[src$='.jpeg'], img[src$='.jpg'], img[src$='.png'], img[src$='.gif']").wrap('<div class="b-img"/>').each(function() {
        var src = $(this).attr('src');
        var a = $('<a/>').attr('href', src).addClass('img-link').colorbox();    
        $(this).after(a);
        });
})(jQuery);

根据 OP 的评论进行编辑,用于更改图像 src

jQuery(document).ready(function($) {
$("img[src$='.jpeg'], img[src$='.jpg'], img[src$='.png'], img[src$='.gif']").wrap('<div class="b-img"/>').each(function() {
        var src = $(this).attr('src');
        var a = $('<a/>').attr('href', src).addClass('img-link').colorbox();    
        $(this).after(a);
        $(this).attr('src', 'http://www.yoursite.com/images/img1.jpg');
        });
})(jQuery);
于 2012-12-26T08:59:29.377 回答
1

insertBefore()在之前插入元素this,如下所示:

$(function() {
   $("img").wrap('<div class="b-img"/>').each(function() {
     $('<a />', {href: this.src, 'class': 'img-link'}).colorbox().insertBefore(this);    
   });​
});​

此外,不需要检查所有可用的图像文件扩展名,如果您有 svg 等图像,请改用类。

于 2012-12-26T09:01:10.260 回答