操作复制的 attr

发布于 2024-10-16 14:52:34 字数 497 浏览 6 评论 0原文

我正在为我的网站编写一个简单的灯箱脚本,该脚本将链接 (A) 包裹在图像周围。链接 URL 应该是图像的 SRC,但稍加修改。

图像 URL 可能如下所示:“pb028855_copy_147x110.jpg”,我希望它删除“147x110”,从“copy”之后到“.jpg”之前。

我当前的脚本是将 SRC 从图像复制到链接,如下所示:

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

How can I use parts of a attr?

先感谢您...

I'm working on a simple lightbox script for my website, that wraps a link (A) around a image. The link URL should then be the SRC of the image, but slightly manipulated.

The image URL could look like this: "pb028855_copy_147x110.jpg" and I want it to delete "147x110", from after "copy" to before ".jpg" that is.

My current script, to copy the SRC from the image to the link is like this:

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

How can I use parts of a attr?

Thank you in advance...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

七分※倦醒 2024-10-23 14:52:34

如果您不确定这些数字到底是什么,您可以使用 使用正则表达式的 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

If you're not certain exactly what the numbers will be, you could use the replace()(docs) method with a regular expression.

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

So this:

pb028855_copy_147x110.jpg

will end up as this:

pb028855_copy.jpg
深海少女心 2024-10-23 14:52:34

它们有多种操作字符串的方法,具体取决于您到底想要什么,例如:

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

They are several ways of manipulating strings, depends of what you exactly want, for example:

$imgSrc = $imgSrc.replace(/thumb/, 'big');
源来凯始玺欢你 2024-10-23 14:52:34

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

(我把包装部分清理了一下。)

The attr method simply returns a string, you can manipulate it just like any other one. So a regex replace would work.

$(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);
    });
});

(I cleaned up the wrapping part a bit.)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文