Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用jQuery替换图像链接_Javascript_Jquery_Html - Fatal编程技术网

Javascript 用jQuery替换图像链接

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", "

我在元素中有一个图像,在悬停状态下显示一个灯箱图像。我想用灯箱图像替换元素中的图像。我的内容是动态匹配的,我不能更改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", "/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的图像时,我需要交换完整的链接-但是链接不一致,所以这就是我需要瞄准的目标。更新了我的问题。