2011-12-08 111 views
20

我試過這個沒有成功。設置圖像src屬性在Chrome中不起作用

我想獲得一個圖像的src並將其設置爲另一個人的src當按下#btn

jQuery("#btn").live("click", function() { 
    jQuery("#another_div") 
     .children("img") 
     .attr("src", jQuery(this).prev("img").attr("src")); 
    jQuery(this) 
     .prev("img") 
     .attr("src",""); 
}) 

我也曾嘗試:

jQuery(this).prev('img').removeAttr("src"); 

它工作正常,在Firefox,IE7 -9和Safari。

只有在Chrome中,即使源更改(src=""),圖像也不會被刪除。

+1

好吧,這已經過了一年了,這仍然是一個很大的issue..god我討厭的是Chrome我討厭IE一樣多。 – vsync

回答

29

你可以將其更改爲

jQuery(this).attr("src", "data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="); 

可能?

+0

嗨,約瑟夫,它似乎這個工程,當你這樣做。你能解釋一下你爲src值做了什麼嗎?請參閱http:// jsfiddle。淨/ K7SBx/1/ –

+6

好吧,我明白了。它是1px乘1px透明GIF圖像的base64編碼字符串。 –

+0

@ManjulaWeerasinge你是對的。 :)我應該解釋說。 XD對不起,我今天早上纔看到你的問題。 –

0

首先嚐試設置src爲空白

$(this).attr("src",""); 

然後

$(this).removeAttr("src"); 
+0

警告:不要這樣做。這將導致一個額外的服務器請求! http://www.bennadel.com/blog/2236-empty-src-and-url-values-can-cause-duplicate-page-requests.htm –

2

嘗試刪除圖像,並通過這樣

$(this).attr("src",""); 

清除src屬性在我的情況再次

jQuery('#another_div').children("img").remove() 
jQuery('#another_div').append('<img>').attr("src",jQuery(this).prev('img').attr("src")); 
+1

它適用於鉻順利:) tnx –

1
jQuery('#btn').live("click", function() { 
    jQuery('#another_div') 
     .children("img") 
     .attr("src", jQuery(this).prev('img').attr("src")); 
    jQuery(this) 
     .prev('img').remove(); 
}) 
3

追加它,因爲,但是,圖像不消失。因此,我只是將img標籤樣式屬性顯示設置爲無,像這樣

$(this).attr("src","").css("display", "none"); 

它會隱藏圖像。我希望,它會暫時爲你工作。

0

這爲我工作:

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

然而,警惕,你可能已經安裝到圖像的任何事件處理程序。總是有withDataAndEventsdeepWithDataAndEvents選項jQuery的克隆,但我還沒有與他們進行測試的代碼:http://api.jquery.com/clone/#clone-withDataAndEvents

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

我張貼了類似的問題相同的答案:Clear an IMG with jQuery