Javascript appendChild:Undefined不是一个函数

时间:2014-11-02 00:47:27

标签: javascript html

我尝试在一段javascript代码上添加指向图片代码的链接:

var imgs = document.getElementsByTagName("img");

但是我试图在循环中添加每个源的来源,除了第一个:

for (var i = 1; i < imgs.length; i++) {
    var a = document.createElement('a');
    a.href = imgs[i].src;
    a.appenChild(imgs[i]);
}

然而,当我运行它时,我收到此错误:

Uncaught TypeError: undefined is not a function 

我尝试使用imgs[i]显示alert,然后获得[object HTMLImageElement]。可能导致这种情况的原因以及如何解决?提前谢谢大家

2 个答案:

答案 0 :(得分:2)

您需要appendChild(),但您的代码显示为appenChild()。修正拼写错误,错误应该修复。

答案 1 :(得分:1)

错误appendChild&amp;使用cloneNode会阻止您的代码从页面中删除图片。

要使用新链接替换图像,请使用以下代码。

var imgs = document.getElementsByTagName("img");

for (var i = 0; i < imgs.length; i++) {
    var a = document.createElement('a');
    a.href = imgs[i].src;
    a.appendChild(imgs[i].cloneNode(true));
    imgs[i].parentNode.replaceChild(a, imgs[i]);
}

修改

修改HTML将是一种更好的方法。

自:

<img src="link/to/image.jpg"></img>

要:

<a href="link/to/image.jpg"></a>
    <img src="link/to/image.jpg"></img>
</a>