我有如下所示的所有html标记字符串
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中做到这一点呢?
发布于 2013-11-29 09:45:37
这段代码满足了我的要求。数据是html字符串。
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。
发布于 2013-11-27 09:11:09
小提琴
您必须遍历每个img标记,获取src,然后更改img标记上的src。
  var otherDomain='www.otherdomain.com';
$('img').each(function(){
    $(this).attr('src', otherDomain + '/' + $(this).attr('src'));
});编辑:有人跑得更快。
我认为Guy已经发布了用src属性中的新域替换字符串的解决方案。可以在img标记中使用regex或替换src属性,如下所示:
var otherDomain = 'www.otherdomain.com';
description = description.replace('src="', 'src="' + otherDomain);弹琴-替换字符串
这就是你一直在寻找的答案吗?
发布于 2013-11-27 09:06:18
如果这实际上是DOM的一部分,而不是一个带有jQuery的字符串,那么您可以在所有img标记上运行一个each,并更改src属性,如下所示
$('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"')
https://stackoverflow.com/questions/20237688
复制相似问题