首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何迭代所有img标记并为这些src添加动态域,并在jquery中返回整个字符串?

如何迭代所有img标记并为这些src添加动态域,并在jquery中返回整个字符串?
EN

Stack Overflow用户
提问于 2013-11-27 08:53:49
回答 3查看 1.6K关注 0票数 1

我有如下所示的所有html标记字符串

代码语言:javascript
运行
复制
var description = "<div class="header"> <div class="logo"> <a href="http://domain.com"> <img src="devimg/logo.png" class="showHome" alt="ssfdf" height="80px" /> </a> </div><div><img class="img1" src="devimg/sss.png"></img></div><div><img class="img2" src="devimg/.png"></img></div> </div>"

我有像上面这样的html字符串,想要迭代所有的img标记,并将一些域添加到src url中,比如<img class="img1" src="www.otherdomain.com/devimg/sss.png">,这样就想为每个img标记添加域。在替换完所有想要得到的整个html标记后,再为img标记添加新的域。

我怎样才能在jQuery中做到这一点呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-11-29 09:45:37

这段代码满足了我的要求。数据是html字符串。

代码语言:javascript
运行
复制
var temp = document.createElement('div');
    data = data.replace(/src=/gi, "tempsrc=");
    temp.innerHTML = data;
    $(temp).find( 'img' ).each(function() {
    var oldSrc = $(this).attr("tempsrc");
     $(this).removeAttr("tempsrc");
        if(oldSrc){
          $(this).attr("src", "clouddomain.com/"+oldSrc);
        }
    });

如果将任何html内容附加到dom元素中,则会以相对路径的形式从ur域加载资源,如图像。在上面的代码中,替换一些临时属性,然后附加到one元素中。然后替换云url。

票数 0
EN

Stack Overflow用户

发布于 2013-11-27 09:11:09

小提琴

您必须遍历每个img标记,获取src,然后更改img标记上的src。

代码语言:javascript
运行
复制
  var otherDomain='www.otherdomain.com';
$('img').each(function(){

    $(this).attr('src', otherDomain + '/' + $(this).attr('src'));

});

编辑:有人跑得更快。

我认为Guy已经发布了用src属性中的新域替换字符串的解决方案。可以在img标记中使用regex或替换src属性,如下所示:

代码语言:javascript
运行
复制
var otherDomain = 'www.otherdomain.com';

description = description.replace('src="', 'src="' + otherDomain);

弹琴-替换字符串

这就是你一直在寻找的答案吗?

票数 1
EN

Stack Overflow用户

发布于 2013-11-27 09:06:18

如果这实际上是DOM的一部分,而不是一个带有jQuery的字符串,那么您可以在所有img标记上运行一个each,并更改src属性,如下所示

代码语言:javascript
运行
复制
$('img').each(function() {
    $(this).attr('src', 'http://otherdomain.com' + $(this).attr('src'));
});

小提琴手:http://jsfiddle.net/zVgpV/

如果它是一个字符串,你必须调整它,你的regex会是这样的

str.replace(/src="(.*)"/, 'src="http://otherdomain.com/$1"')

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20237688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档