2012-06-02 408 views
31

我試圖從<img>元素中刪除已加載的圖像,但清除或刪除src不會執行此操作。該怎麼辦?使用jQuery清除IMG

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/

+0

你是什麼意思通過清除IMG?你想從DOM中刪除img元素? – dievardump

+0

不清除從img元素加載的圖像 – Yarin

+0

那麼,它不會留在每個兄弟。你能否給出一個例子,說明你需要什麼行爲來清除src屬性而不從DOM中移除img元素? – dievardump

回答

24

你將不得不EIT她的remove<img>元素完全或替換爲不同的圖像(可能是一個透明的gif)。

+0

明白了 - 謝謝 – Yarin

+54

或者您可以將src更改爲1x1像素:'$('img')。attr('src','data:image/gif; base64,R0lGODlhAQABAIAAAAAAAP /// ywAAAAAAQABAAACAUwAOw ==') ;' – Mottie

+0

真棒Mottie! – Costa

4

大約只是隱藏的元素是什麼:

$('img').hide(); 

無法從標籤中刪除圖像。當你使用jQuery時,記住你不處理標籤,你使用DOM元素進行處理。因此,你的標籤根據jquery不是標籤,它是一個對象,一個DOM元素。這是元素不是標籤,IT是表示DOM中圖像的元素。所以如果你想隱藏一個圖像,你必須隱藏這個元素。

+0

邁克爾 - 我的意思是'元素',而不是'標記' - 編輯我的問題 – Yarin

+0

好吧,好吧 –

+0

你甚至可以隱藏一個元素,大不了!只需將id和id添加到您的img標籤中,然後執行'$('#myImageID')。hide()'。 – Amar

1

最好的方法是用另一個替換圖像。我的意思是,而不是清理src,設置一個假的值,如.attr('src','notting'); 它會加載沒有像老圖像的緩存版本將會消失

+0

上的show()來解決我的問題,但我需要一個更好的解決方案。 – Burak

+1

這將導致404錯誤,所以這是一個非常糟糕的解決方案! – patrick

+1

在頁面加載之後獲得404是否很重要?您可以將其替換爲現有的空白圖像。 –

1

使用

$("img").remove() 

刪除節點或者乾脆躲使用

$("img").hide() 
8

這個工作對我的形象:

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

但是,請謹慎處理您可能已附加到的任何事件處理程序 圖片。總是有withDataAndEventsdeepWithDataAndEvents選項jQuery的克隆,但我還沒有與他們進行測試的代碼:http://api.jquery.com/clone/#clone-withDataAndEvents

另外,如果您想爲多張圖片做到這一點,你可能要使用類似的jQuery,每個

我張貼了類似的問題相同的答案:Setting image src attribute not working in Chrome

0

這個工作對me.Replacing格「custom_preview_image」中的圖片src屬性爲空

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

你可以做到這一點。首先分配圖像ID

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

然後刪除源屬性。

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

如果您仍然希望元素佔據空間但隱藏,請用css隱藏它。給你的圖像需要的類別或ID和隱藏它想:

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

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

而不是顯示破碎的形象,同時設置"src""#",有一個解決辦法,這樣你就可以設置alt屬性所需的文本:

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