删除所有图像

时间:2009-09-17 08:36:21

标签: javascript

什么JavaScript会删除所有图片代码?

5 个答案:

答案 0 :(得分:38)

上一个答案只会删除每一个图像。

记住getElementsByTagName或其他DOM方法返回的NodeLists是“实时”。这意味着当您删除图像0时,图像1-n向下移动到0-(n-1);这是一次'破坏性迭代'。

要避免这种情况,要么创建NodeList的静态数组副本(因为jQuery答案正在有效地进行),要么更快,只需向后迭代列表:

for (var i= document.images.length; i-->0;)
    document.images[i].parentNode.removeChild(document.images[i]);

答案 1 :(得分:14)

UPD:抱歉,这是一个错误的答案,请参阅评论。 This是一个正确的答案。

像这样:

images = document.getElementsByTagName('img');
for (i = 0; i < images.length; i++) {
    images[i].parentNode.removeChild(images[i]);
}

或者我第一次尝试回答这个问题的一点修改:

var images = document.getElementsByTagName('img');
var l = images.length;
for (var i = 0; i < l; i++) {
    images[0].parentNode.removeChild(images[0]);
}

答案 2 :(得分:12)

这也应该有效:

var images = document.getElementsByTagName('img');
while(images.length > 0) {
    images[0].parentNode.removeChild(images[0]);
}

答案 3 :(得分:6)

使用jQuery

$("img").remove();

答案 4 :(得分:0)

不使用外部库:

var images = document.getElementsByTagName('img');
for(var i=0; i < images.length; i++) {
    images[i].parentNode.removeChild(images[i]);
}

或者使用jquery:

$('img').remove();