我尝试在一段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]
。可能导致这种情况的原因以及如何解决?提前谢谢大家
答案 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>