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

Очистить IMG с помощью jQuery

Я пытаюсь удалить загруженное изображение из элемента <img>, но очистка или удаление src не делает этого. Что делать?

HTML:

<img src='https://www.google.com/images/srpr/logo3w.png'>

JQUERY:

$('img').attr('src', ''); // Clear the src
$('img').removeAttr('src');​ // Remove the src

Изображение остается...

скрипт: http://jsfiddle.net/6x9NZ/

4b9b3361

Ответ 1

Вам придется либо remove элемент <img> полностью или заменить его другим изображением (которое может быть прозрачным gif).

Ответ 2

Это сработало для меня:

var $image = $('.my-image-selector');
$image.removeAttr('src').replaceWith($image.clone());

Однако будьте осторожны с любыми обработчиками событий, которые вы могли бы привязать к изображению. Всегда существуют опции withDataAndEvents и deepWithDataAndEvents для jQuery clone, но я не тестировал код с ними: http://api.jquery.com/clone/#clone-withDataAndEvents

Кроме того, если вы хотите сделать это для нескольких изображений, вам, вероятно, придется использовать что-то вроде jQuery каждый.

Я отправил идентичный ответ по аналогичному вопросу: Настройка атрибута src изображения, не работающего в Chrome

Ответ 3

как просто спрятать элемент:

$('img').hide();

Вы не можете удалить изображение из тега. Когда вы используете jQuery, имейте в виду, что вы не имеете дело с тегами, вы создаете дубликаты элементов DOM. Поэтому ваш тег в терминах jquery не является тегом, это объект, элемент DOM. И это элемент не тег, это элемент, который представляет изображение в DOM. Поэтому, если вы хотите скрыть изображение, вы должны скрыть элемент.

Ответ 4

Вы можете это сделать. Сначала назначьте изображение ID

<img id='image_id' src='https://www.google.com/images/srpr/logo3w.png'>

И затем удалите исходный атрибут.

jQuery('#image_id').removeAttr('src')
jQuery('#image_id').show();

Ответ 5

лучший способ - заменить изображение другим. я имею в виду вместо очистки src, установить поддельное значение, например .attr('src', 'notting'); он не загрузит изображение, и кэшированная версия старого изображения исчезнет

Ответ 6

Удалите node с помощью

$("img").remove()

или просто скрыть изображение, используя

$("img").hide()

Ответ 7

Это сработало для меня. Замена атрибута изображения src в div 'custom_preview_image' на пустой

field = jQuery(this).closest('td').find('.custom_repeatable li:last').clone(true); field.find('.custom_preview_image').removeAttr('src').end();

Ответ 8

Если вы все еще хотите, чтобы элемент занимал пространство, но, будучи невидимым, спрячьте его с помощью css. Дайте вашему образу класс или id и скройте его, как:

<img id='hide' src='https://www.google.com/images/srpr/logo3w.png'>

$('#hide').css('visibility', 'hidden');

Ответ 9

Вместо отображения сломанного изображения при настройке "src" на "#", существует обходное решение, поэтому вы можете установить атрибут alt на нужный текст:

 $('#thumbnialPreviewImage').attr('src', '#');
 $('#thumbnialPreviewImage').attr('alt', 'Please Select Image');