Ответ 1
Вам придется либо remove элемент <img>
полностью или заменить его другим изображением (которое может быть прозрачным gif).
Я пытаюсь удалить загруженное изображение из элемента <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/
Вам придется либо remove элемент <img>
полностью или заменить его другим изображением (которое может быть прозрачным gif).
Это сработало для меня:
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
как просто спрятать элемент:
$('img').hide();
Вы не можете удалить изображение из тега. Когда вы используете jQuery, имейте в виду, что вы не имеете дело с тегами, вы создаете дубликаты элементов DOM. Поэтому ваш тег в терминах jquery не является тегом, это объект, элемент DOM. И это элемент не тег, это элемент, который представляет изображение в DOM. Поэтому, если вы хотите скрыть изображение, вы должны скрыть элемент.
Вы можете это сделать. Сначала назначьте изображение ID
<img id='image_id' src='https://www.google.com/images/srpr/logo3w.png'>
И затем удалите исходный атрибут.
jQuery('#image_id').removeAttr('src')
jQuery('#image_id').show();
лучший способ - заменить изображение другим. я имею в виду вместо очистки src, установить поддельное значение, например .attr('src', 'notting'); он не загрузит изображение, и кэшированная версия старого изображения исчезнет
Удалите node с помощью
$("img").remove()
или просто скрыть изображение, используя
$("img").hide()
Это сработало для меня. Замена атрибута изображения 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();
Если вы все еще хотите, чтобы элемент занимал пространство, но, будучи невидимым, спрячьте его с помощью css. Дайте вашему образу класс или id и скройте его, как:
<img id='hide' src='https://www.google.com/images/srpr/logo3w.png'>
$('#hide').css('visibility', 'hidden');
Вместо отображения сломанного изображения при настройке "src"
на "#"
, существует обходное решение, поэтому вы можете установить атрибут alt
на нужный текст:
$('#thumbnialPreviewImage').attr('src', '#');
$('#thumbnialPreviewImage').attr('alt', 'Please Select Image');