35

我正在尝试从<img>元素中删除加载的图像,但清除或删除 src 并没有这样做。该怎么办?

HTML:

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

查询:

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

图像仍然...

小提琴:http: //jsfiddle.net/6x9NZ/

4

9 回答 9

28

您必须完全删除<img>元素或将其替换为不同的图像(可能是透明的 gif)。

于 2012-06-02T20:27:40.433 回答
10

这对我有用:

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

但是,请注意您可能附加到图像的任何事件处理程序。jQuery clone总是有withDataAndEventsdeepWithDataAndEvents选项,但我没有用它们测试代码:http: //api.jquery.com/clone/#clone-withDataAndEvents

此外,如果您想对多个图像执行此操作,您可能必须使用jQuery each之类的东西。

我在类似问题上发布了相同的答案:Setting image src attribute not working in Chrome

于 2013-04-26T12:26:42.567 回答
9

你可以这样做。首先为图像分配一个ID

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

然后删除源属性。

jQuery('#image_id').removeAttr('src')
jQuery('#image_id').show();
于 2015-01-07T18:34:37.253 回答
5

简单地隐藏一个元素怎么样:

$('img').hide();

您不能从标签中删除图像。当您使用 jQuery 时,请记住您不处理标签,而是使用 DOM 元素进行操作。因此,就 jquery 而言,您的标签不是标签,它是一个对象,一个 DOM 元素。这是元素不是标签,它是在 DOM 中表示图像的元素。因此,如果要隐藏图像,则必须隐藏元素。

于 2012-06-02T20:29:17.577 回答
3

使用删除节点

$("img").remove()

或简单地使用隐藏图像

$("img").hide()
于 2013-04-14T17:11:18.720 回答
1

最好的方法是用另一个替换图像。我的意思是不要清理 src,而是设置一个假值,如 .attr('src','notting'); 它不会加载任何图像,并且旧图像的缓存版本将消失

于 2013-04-14T17:06:50.770 回答
0

这对我有用。将 div 'custom_preview_image' 中的图像属性 src 替换为空白

field = jQuery(this).closest('td').find('.custom_repeatable li:last').clone(true); field.find('.custom_preview_image').removeAttr('src').end();
于 2013-05-18T10:36:55.380 回答
0

如果您仍然希望元素占用空间但不可见,请使用 css 将其隐藏。给你的图像一个类或 id 并像这样隐藏它:

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

$('#hide').css('visibility', 'hidden');
于 2016-02-14T17:09:13.873 回答
-2

而不是在设置为时显示损坏的图像"src""#"有一种解决方法,因此您可以将alt属性设置为所需的文本:

 $('#thumbnialPreviewImage').attr('src', '#');
 $('#thumbnialPreviewImage').attr('alt', 'Please Select Image');
于 2017-08-23T14:45:01.567 回答