2016-11-17 2 views
-1

Я ищу способ найти/заменить ссылки на изображения.Заменить <a href=> ссылки на <img src=> images

Например, следующий текст:

<a href="http://domain.com/arbitrary-file.jpg">Text</a> 

в

<img src="http://domain.com/arbitrary-file.jpg" /> 
+0

Вы хотите заменить бирки? – brk

+0

В браузере, не так ли? –

+0

Find and Replace - отличная утилита для этого. –

ответ

0
var linksNodes = document.getElementsByTagName('a'); 
for(var i = 0; i < linksNodes.length; i++) { 

    var a = linksNodes[i]; 
    if(a.href.endsWith(".jpg") || a.href.endsWith(".png")) { 

     var img = document.createElement('img'); 
     img.src = a.href; 
     a.parentElement.replaceChild(img, a); 
    } 

} 

endsWith в ES6 но IE11 не поддерживает его, края, тем не менее. Вы, возможно, потребуется расширить String:

if(!String.prototype.endsWith) { 

    String.prototype.endsWith = function(value) { 

     var expectedIdx = this.length - value.length; 
     return this.indexOf(value, expectedIdx ) == expectedIdx; 
    } 
} 
0
<a href="http://domain.com/arbitrary-file.jpg" class="test">Text</a> 

<script type="text/javascript"> 
    jQuery(document).ready(function(){ 
var attrib = jQuery('a.test').attr('href'); 
jQuery('a.test').removeAttr('href'); 
jQuery('a.test').attr('src',attrib); 

    }); 

0

Попробуйте это:

var links = document.getElementsByTagName('a'); 
var i; 
var currentLink; 
var newImg; 

for (i=0; i<links.length; i++) { 

    currentLink = links[i]; 

    newImg = document.createElement('img'); 
    newImg.src = currentLink.href; 

    currentLink.parentNode.insertBefore(newImg, currentLink); 
    currentLink.remove(); 

} 
0

Это возможно с помощью Jquery.

степ:

  1. Сначала возьмите <a> тег в div tag.Give уникального идентификатора для div тега:
    <div id='divtag'><a href="http://domain.com/arbitrary-file.jpg">Text</a> </div>

  2. var value= $('#divtag a').attr('href')

  3. $('#divtag').text('<img src="+ value +">Text</img>').

Следуйте за шагом, чтобы завершить свою работу по мере необходимости.

0

Вот самый простой способ сделать это в JQuery:

$("a").each(function() { 
    $(this).replaceWith("<img src='" + $(this).attr("href") + "'>") 
}) 

теги изображений не имеют внутреннего текста. Таким образом, вы бы просто превратить <a href="http://placehold.it/255x255">Something</a> в <img src="http://placehold.it/255x255">

Edit: если вы хотите добавить альтернативный текст, как то, что внутренний текст вы можете сделать:

$("a").each(function() { 
    $(this).replaceWith("<img src='" + $(this).attr("href") + "' alt='" + $(this).text() +"'>") 
}) 

Вот фрагмент вы можете запустить:

$("a").each(function() { 
 
    $(this).replaceWith("<img src='" + $(this).attr("href") + "' alt='" + $(this).text() +"'>") 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<a href="http://placehold.it/255x230">Text</a>

Смежные вопросы