2016-11-17 111 views
-1

我正在寻找一种方法来查找/替换图像链接。替换<a href=>链接<img src=>图片

例如,下面的文本:

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

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

您的意思是更换标签吗? – brk

+0

在浏览器中,对不对? –

+0

查找和替换是一个很好的工具。 –

回答

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。

步骤A:

  1. 首先采取<a>标签为div tag.Give唯一ID 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">

编辑:如果您想替代文本添加什么的内文中,你可以这样做:

$("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>

相关问题