Javascript 用jQuery替换图像链接
我在元素中有一个图像,在悬停状态下显示一个灯箱图像。我想用灯箱图像替换元素中的图像。我的内容是动态匹配的,我不能更改html 我所有的图片url都以/250/250结尾,一些lighbox图片以/400/300结尾,我使用下面的脚本替换它们:Javascript 用jQuery替换图像链接,javascript,jquery,html,Javascript,Jquery,Html,我在元素中有一个图像,在悬停状态下显示一个灯箱图像。我想用灯箱图像替换元素中的图像。我的内容是动态匹配的,我不能更改html 我所有的图片url都以/250/250结尾,一些lighbox图片以/400/300结尾,我使用下面的脚本替换它们: $('.new-structure .image a img').each(function () { var src = $(this).attr('src'); $(this).attr('src', src.replace("/250/250", "
$('.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
<a class="mainColorbox" href="/img/0~676B9DBB-5D93-4481-B241-74B619F96188~400~300~1"></a>
如何将以/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
更新:意识到根据元素类交换它们可能更容易
lightbox图像如下所示:
/img/0~BC6F034B-3404-4FBA-B26A-9B2990552E72~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">
使用正则表达式代码替换字符串:
var str = 'some // slashes', replacement = '';
var replaced = str.replace(/\//g, replacement);
否则斜杠将像您的示例中那样进行编码
在此处了解更多信息:我做到了-灯箱图像都以/400/300或~400~300~1结尾。目标容器中的静态图像都结束于/250/250。我不确定我是否理解您在本例中所说的“匹配”的意思。你能不能把“/400/300”换成“400~300~1”在
replace
方法中?你应该尝试正则表达式。@shapoglyk我认为问题是他想将链接从/250/250传输到400/300或400~300~1,但他不确定哪个是正确的。当灯箱图像具有/400/300时,我已经传输了链接-这很容易,因为它们具有相同的文件结构。但是当我遇到一张~400~300~1的图像时,我需要交换完整的链接-但是链接不一致,所以这就是我需要瞄准的目标。更新了我的问题。