首页 文章

用jQuery替换图像链接

提问于
浏览 1164
1

我在一个元素中有一个图像,其中有一个在悬停时显示的灯箱图像 . 我想用灯箱图像替换元素中的图像 . 我的内容是动态匹配的,我无法更改html .

我的所有图片网址都以/ 250/250结尾 - 而某些lighbox图像以/ 400/300结尾 - 我使用下面的脚本替换它们:

$('.new-structure .image a img').each(function () {
var src = $(this).attr('src');
$(this).attr('src', src.replace("/250/250", "/400/300"));
});

但是一些灯箱图像有另一个结局,我不能让脚本工作 . 它们看起来像这样:

/img/0~BC6F034B-3404-4FBA-B26A-9B2990552E72~400~300~1

如何将图像与/ 250/250的结尾匹配,以400~300~1结尾?

更新:主要问题:当我更换250/250为300/400我不需要更改完整链接 - 它们是相同的除了结束 - 当更换~400~300~1图像时我需要更换完全链接,因为它不同 .

我需要替换这个:

https://mywebsite.com/imgs/2d873287-7eb5-497a-a813-aef655acdb74/250/250

有了这个:

https://mywebsite.com/img/0~3B07CED6-08FF-47CD-9D25-D908774F728D~400~300~1

基于url的结尾处理图像大小:/ 250/250和~400~300~1

更新:意识到根据元素类交换它们可能更容易 .

灯箱图像如下所示:

<a class="mainColorbox" href="/img/0~676B9DBB-5D93-4481-B241-74B619F96188~400~300~1"></a>

目标图片:

<div class="mainPicture">
<img src="/imgs/7fb6d7bd-b9e7-44b2-a533-a485b93456ac/250/250" class="photo">

1 回答

  • 1

    使用正则表达式代码替换字符串:

    var str = 'some // slashes', replacement = '';
    var replaced = str.replace(/\//g, replacement);
    

    否则,斜杠将像您的示例中那样进行编码 .

    点击此处了解更多信息:How to globally replace a forward slash in a JavaScript string?

相关问题