作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是每个帖子的 HTML
<div class="post-body">
<a href="http://www.google.com">google</a>
<a href="http://www.youtube.com">youtube</a>
<a href="http://www.facebook.com">facebook</a>
</div>
对于每个链接,例如 <a href="http://www.google.com">google</a>
在本例中添加具有相同超链接的图像 <a href="http://www.google.com">google</a>
并在图像 src 内在 http://open.thumbshots.org/image.aspx?url= 之后添加超链接所以结果将是 <img src="http://open.thumbshots.org/image.aspx?url=http://www.google.com" width="120px" />
下面的代码是每个帖子中 html 的结果。
<div class="post-body">
<a href="http://www.google.com">google</a>
<a href="http://www.google.com"><img src="http://open.thumbshots.org/image.aspx?url=http://www.google.com" width="120px" /></a>
<a href="http://www.youtube.com">youtube</a>
<a href="http://www.youtube.com"><img src="http://open.thumbshots.org/image.aspx?url=http://www.youtube.com" width="120px" /></a>
<a href="http://www.facebook.com">facebook</a>
<a href="http://www.facebook.com"><img src="http://open.thumbshots.org/image.aspx?url=http://www.facebook.com" width="120px" /></a>
</div>
最佳答案
这相对简单:
$('.post-body a').each(
function(){
$('<img />').attr('src','http://open.thumbshots.org/image.aspx?url='+ this.href).insertAfter($(this));
});
尽管为了安全起见,通过 encodeURIComponent()
运行网站 URL 可能是明智之举:
$('.post-body a').each(
function(){
$('<img />').attr('src','http://open.thumbshots.org/image.aspx?url='+encodeURIComponent(this.href)).insertAfter($(this));
});
另外,只是为了演示,如果不彻底的话,这实际上并不需要 jQuery;使用纯 JavaScript 也可以实现同样的效果(尽管方式不太简洁):
var container = document.getElementsByClassName('post-body')[0];
var links = container.getElementsByTagName('a');
var imgSrc = 'http://open.thumbshots.org/image.aspx?url=';
for (i = 0; i < links.length; i++) {
var img = document.createElement('img');
var linkURL = encodeURIComponent(links[i].href);
img.src = imgSrc + linkURL;
container.insertBefore(img,links[i].nextSibling);
}
关于 Floyd Pink 的评论,我必须承认我错过了将图像也作为链接的需要。以下是处理这个问题的一种有点困惑的方法,尽管我觉得一定有一种更整洁的方法:
$('.post-body a').each(
function() {
$('<img />').attr('src', 'http://open.thumbshots.org/image.aspx?url=' + encodeURIComponent(this.href)).insertAfter($(this)).parent().find('img:last').wrap('<a></a>').closest('a').attr('href',this.href);
});
关于jquery - 如何在超链接后添加图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7894270/
我是一名优秀的程序员,十分优秀!