Я ищу способ найти/заменить ссылки на изображения.Заменить <a href=> ссылки на <img src=> images
Например, следующий текст:
<a href="http://domain.com/arbitrary-file.jpg">Text</a>
в
<img src="http://domain.com/arbitrary-file.jpg" />
Я ищу способ найти/заменить ссылки на изображения.Заменить <a href=> ссылки на <img src=> images
Например, следующий текст:
<a href="http://domain.com/arbitrary-file.jpg">Text</a>
в
<img src="http://domain.com/arbitrary-file.jpg" />
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;
}
}
<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);
});
Попробуйте это:
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();
}
Это возможно с помощью Jquery.
степ:
Сначала возьмите <a>
тег в div
tag.Give уникального идентификатора для div
тега:
<div id='divtag'><a href="http://domain.com/arbitrary-file.jpg">Text</a> </div>
var value= $('#divtag a').attr('href')
$('#divtag').text('<img src="+ value +">Text</img>')
.
Следуйте за шагом, чтобы завершить свою работу по мере необходимости.
Вот самый простой способ сделать это в 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>
Вы хотите заменить бирки? – brk
В браузере, не так ли? –
Find and Replace - отличная утилита для этого. –