使用Javascript和Jquery更正Img Src路径

使用Javascript和Jquery更正Img Src路径,javascript,jquery,image,src,Javascript,Jquery,Image,Src,我在一个网站上工作,那里的内容来自一个不同领域的老网站,非常重要。大约有一半的图像具有相对路径,这些路径工作得很好。另一半具有用旧域硬编码的绝对路径。旧站点已被删除,因此这些图像不再工作。但是,这些映像确实已导入,并存在于新服务器上。将这些路径更改为相对URL可以更正此问题 长期的解决方案将是通过每个页面从这些图像src URL中删除旧域 但作为一个短期解决方案,我想应用javascript或jquery解决方案,通过页面上的每个img循环,检查每个图像的url,如果它包含旧域,则将其删除。到目

我在一个网站上工作,那里的内容来自一个不同领域的老网站,非常重要。大约有一半的图像具有相对路径,这些路径工作得很好。另一半具有用旧域硬编码的绝对路径。旧站点已被删除,因此这些图像不再工作。但是,这些映像确实已导入,并存在于新服务器上。将这些路径更改为相对URL可以更正此问题

长期的解决方案将是通过每个页面从这些图像src URL中删除旧域

但作为一个短期解决方案,我想应用javascript或jquery解决方案,通过页面上的每个img循环,检查每个图像的url,如果它包含旧域,则将其删除。到目前为止,我还没有取得多少成功

以下是我的HTML示例:

<p><img src="somepicture.jpg"></p> <!-- this works -->
<p><img src="https://www.oldwebsitedomain.com/someotherpicture.jpg"></p> <!-- this doesn't -->
如果我将console.log设置为“this”,我将正确获取页面上的所有img对象。如果我在控制台上记录“$(this).attr(“src”)”,我会得到每个图像的URL。我可以验证我的if语句在正确的图像URL上的计算结果是否为true,但问题出在if语句内部。替换似乎没有运行,并且图像的地址也没有修改

我缺少什么?

.attr('src')
只返回特定属性中的字符串。该字符串与它来自的DOM元素解除关联,因此对其执行的任何操作都不会返回到DOM元素。你需要

str = $(this).attr('src');
$(this).attr('src', str.replace(....));
将更改的字符串写回。

.attr('src')
仅返回特定属性中的字符串。该字符串与它来自的DOM元素解除关联,因此对其执行的任何操作都不会返回到DOM元素。你需要

str = $(this).attr('src');
$(this).attr('src', str.replace(....));

要将更改的字符串写回。

您需要重置图像源属性

var newsrc = $(this).attr("src").replace("https://www.oldwebsitedomain.com/","");
$(this).attr("src", newsrc);

也可用于重置图像源。使用该示例,您不需要使用
.each()


您需要重置图像源属性

var newsrc = $(this).attr("src").replace("https://www.oldwebsitedomain.com/","");
$(this).attr("src", newsrc);

也可用于重置图像源。使用该示例,您不需要使用
.each()

要设置任何属性的值,jquery使用以下语法:,
$(this.attr(“src”,“新值”)。要获取value
attribute=$(this).attr(“src”)
将使用该属性。我把这两个组合成一行

$("img").each(function() {
    if ($(this).attr("src").indexOf("oldwebsitedomain.com") > -1) {
        $(this).attr("src", $(this).attr("src").replace("https://www.oldwebsitedomain.com/",""));
    }
});

要设置任何属性的值,jquery使用以下语法:,
$(this.attr(“src”,“新值”)。要获取value
attribute=$(this).attr(“src”)
将使用该属性。我把这两个组合成一行

$("img").each(function() {
    if ($(this).attr("src").indexOf("oldwebsitedomain.com") > -1) {
        $(this).attr("src", $(this).attr("src").replace("https://www.oldwebsitedomain.com/",""));
    }
});

要使用jquery更改属性,必须向函数调用传递第二个参数:

$(this).attr("src", "new src value");

要使用jquery更改属性,必须向函数调用传递第二个参数:

$(this).attr("src", "new src value");

@伊舍伍德:好的。我会的。@isherwood好的。我会的。