操纵复制的attr

时间:2011-02-09 14:29:19

标签: jquery variables string attr

我正在为我的网站制作一个简单的灯箱脚本,它围绕图像包装一个链接(A)。然后,链接URL应该是图像的SRC,但稍有操作。

图片网址可能如下所示:“pb028855_copy_147x110.jpg”我希望它删除“ 147x110”,从“复制”之后删除到“.jpg”之前。

我目前的脚本,将SRC从图像复制到链接是这样的:

$(function(){
    $('img.withCaption').each(function(){
        var $imgSrc = $(this).attr("src");
        $(this).wrap('<a rel="lightBox" />');
        $(this).parent().attr("href", ""+$imgSrc);
    });
});

如何使用attr的部分?

提前谢谢你......

3 个答案:

答案 0 :(得分:1)

如果您不确定数字的确切含义,可以将replace()(docs)方法与正则表达式一起使用。

$(function(){
    $('img.withCaption').each(function(){
        var $imgSrc = this.src.replace(/_\d+x\d+\./,'.');
        $(this).wrap('<a rel="lightBox" />')
               .parent().attr("href", ""+$imgSrc);
    });
});

所以这个:

pb028855_copy_147x110.jpg

将以此结束:

pb028855_copy.jpg

答案 1 :(得分:0)

它们有几种操纵字符串的方式,取决于你想要的东西,例如:

$imgSrc = $imgSrc.replace(/thumb/, 'big');

答案 2 :(得分:0)

attr方法只返回一个字符串,你可以像任何其他字符串一样操纵它。所以正则表达式替换会起作用。

$(function(){
    $('img.withCaption').each(function(){
        var imgSrc = $(this).attr("src")*.replace(/_copy_\d+x\d+\.jpg$/, "_copy.jpg")*;
        $(this).wrap($('<a rel="lightBox" />').attr("href", imgSrc);
    });
});

(我清理了包装部分。)