什么JavaScript会删除所有图片代码?
答案 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();