Как перебрать все теги IMG и добавить динамический домен для тех SRC и вернуть всю строку в JQuery?

0

У меня есть все теги 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?

  • 0
    Эй, @rajesh, твоя строка не отображается.
  • 0
    Я добавил кавычки ( " ), чтобы обернуть вашу строку HTML (при условии, что пропуск кавычек был опечаткой). Если эти кавычки отсутствуют в вашем реальном коде, это довольно серьезная синтаксическая ошибка, которую необходимо исправить.
Теги:
image

3 ответа

0
Лучший ответ

этот код удовлетворил мое требование. data - строка 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 content в dom, он загружает ресурсы, такие как изображения из домена ur, принимая в качестве относительного пути. В приведенном выше коде заменяется некоторый временный атрибут, а затем добавляется к одному элементу dom. затем заменяя облачный url.

0

jsfiddle

Вы должны проходить через каждый тег img, получить src, а затем изменить src на свой тег img.

  var otherDomain='www.otherdomain.com';
$('img').each(function(){

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

});

edit: кто-то был быстрее..

Я думаю, что Гай уже разместил решение с заменой строки новым доменом в атрибуте src. Вы можете использовать regex или заменить атрибут src в теге img следующим образом:

var otherDomain = 'www.otherdomain.com';

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

jsfiddle - заменить строку

Это ответ, который вы искали?

  • 0
    Привет Тидла, я хочу повторить строку, которая содержит все HTML-теги, включая IMG-теги. После замены всех доменов на тег img src хочется получить только строку
0

Если это фактически часть DOM, а не строка с jQuery, вы можете запускать каждую из всех тегов img и изменять атрибут src, что-то вроде этого

$('img').each(function() {
    $(this).attr('src', 'http://otherdomain.com' + $(this).attr('src'));
});

jsfiddle: http://jsfiddle.net/zVgpV/

Если это строка, которую вы должны были бы повторно использовать, ваше Regex будет чем-то вроде этого

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

  • 0
    HI Гай, есть ли другие функции jquery, чтобы найти все теги img в строке и заменить src новым доменом?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню