bob*_*nce 38
上一个答案将仅删除每隔一个图像.
记住getElementsByTagName或其他DOM方法返回的NodeLists是'live'.这意味着当您删除图像0时,图像1-n向下移动到0-(n-1); 这是一种"破坏性的迭代".
要避免这种情况,要么创建NodeList的静态Array副本(因为jQuery答案正在有效地执行),要么更快,只需向后迭代列表:
for (var i= document.images.length; i-->0;)
document.images[i].parentNode.removeChild(document.images[i]);
Run Code Online (Sandbox Code Playgroud)
n13*_*313 14
UPD:对不起,这是一个错误的答案,请参阅评论.这是一个正确的答案.
像这样的东西:
images = document.getElementsByTagName('img');
for (i = 0; i < images.length; i++) {
images[i].parentNode.removeChild(images[i]);
}
Run Code Online (Sandbox Code Playgroud)
或者稍微修改我第一次回答这个问题:
var images = document.getElementsByTagName('img');
var l = images.length;
for (var i = 0; i < l; i++) {
images[0].parentNode.removeChild(images[0]);
}
Run Code Online (Sandbox Code Playgroud)
mac*_*die 12
这也应该有效:
var images = document.getElementsByTagName('img');
while(images.length > 0) {
images[0].parentNode.removeChild(images[0]);
}
Run Code Online (Sandbox Code Playgroud)
使用jQuery:
$("img").remove();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16728 次 |
| 最近记录: |