在站点加载时,如何使用Javascript动态地将所有图像包装在链接中?

在站点加载时,如何使用Javascript动态地将所有图像包装在链接中?,javascript,dom,href,image,Javascript,Dom,Href,Image,我几乎没有使用DOM和Javascript的经验,我有一个非常具体的任务要完成 假设我的HTML中有一个图像: <img src="foo.jpg" /> 加载站点时,我希望拍摄该图像(实际上是文档中的所有图像),并将其包装在链接中: <a href="http://www.foobar.com"><img src="foo.jpg" /></a> 我可以用什么来实现这一点?关于这项具体任务,谷歌并没有给我带来多少帮助。加载时,我可以访

我几乎没有使用DOM和Javascript的经验,我有一个非常具体的任务要完成

假设我的HTML中有一个图像:

<img src="foo.jpg" />

加载站点时,我希望拍摄该图像(实际上是文档中的所有图像),并将其包装在链接中:

<a href="http://www.foobar.com"><img src="foo.jpg" /></a>


我可以用什么来实现这一点?关于这项具体任务,谷歌并没有给我带来多少帮助。加载时,我可以访问和迭代文档中的所有图像。。。但我不知道从那里去哪里,以包装在一个链接的图像

您可以尝试以下几行:

window.onload = function() {
    var images = document.getElementsByTagName('img');
    for (var i = 0, image = images[i]; i < images.length; i++) {
        var wrapper = document.createElement('a');
        wrapper.setAttribute('href', 'http://www.foobar.com');
        wrapper.appendChild(image.cloneNode(true));
        image.parentNode.replaceChild(wrapper, image);
    }
};
window.onload=function(){
var images=document.getElementsByTagName('img');
for(var i=0,image=images[i];i
我建议您使用优秀的库来操作DOM:

$(function() {
    $('img').wrap('<a href="http://foo.com">');
});
$(函数(){
$('img').wrap('');
});

您可以尝试以下几行:

window.onload = function() {
    var images = document.getElementsByTagName('img');
    for (var i = 0, image = images[i]; i < images.length; i++) {
        var wrapper = document.createElement('a');
        wrapper.setAttribute('href', 'http://www.foobar.com');
        wrapper.appendChild(image.cloneNode(true));
        image.parentNode.replaceChild(wrapper, image);
    }
};
window.onload=function(){
var images=document.getElementsByTagName('img');
for(var i=0,image=images[i];i
我建议您使用优秀的库来操作DOM:

$(function() {
    $('img').wrap('<a href="http://foo.com">');
});
$(函数(){
$('img').wrap('');
});

在下面的示例中,所有图像都包装在指向其源的链接中。因此,如果图像具有
//example.com
src
,它将被一个指向
//example.com
的锚(链接)包装

当然,您不希望链接某些图像,以便添加数据属性
nolink
,例如:




$(function(){//在DOM就绪后运行
$('img:not([data nolink]))。每个(function(){//遍历每个img元素
$(this).wrap(');因此,当您单击任何链接时,您将看到与此处不同的图像



在下面的示例中,所有图像都被包装在指向其源的链接中。因此,如果图像具有
//example.com
src
,它将被包装为指向
//example.com
的锚点(链接)

当然,您不希望链接某些图像,以便添加数据属性
nolink
,例如:




$(function(){//在DOM就绪后运行
$('img:not([data nolink]))。每个(function(){//遍历每个img元素
$(this).wrap(');因此,当您单击任何链接时,您将看到与此处不同的图像



+1不知道replaceChild,我自己的纯js版本在测试时工作得不太好=)+1不知道replaceChild,我自己的纯js版本在测试时工作得不太好=)