Подтвердить что ты не робот

Удалить все изображения

Какой JavaScript удалит все теги изображений?

4b9b3361

Ответ 1

UPD: извините, это неправильный ответ, см. комментарии. Это правильный ответ.

Что-то вроде этого:

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

В предыдущем ответе будет удалено только каждое второе изображение.

Помните, что NodeLists, возвращаемые getElementsByTagName или другими методами DOM, являются "живыми". Это означает, что при удалении изображения 0 изображения 1-n перемещаются вниз до 0- (n-1); это "деструктивная итерация".

Чтобы избежать этого, сделайте статическую копию массива NodeList (как эффективно ответ jQuery), или, быстрее, просто переместите список назад:

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

Ответ 3

Это тоже должно работать:

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

Ответ 4

С jQuery:

$("img").remove();

Ответ 5

Без использования внешних библиотек:

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

Или используя jquery:

$('img').remove();