2012-12-05 138 views
17

可能重复:
Setting image src attribute not working in Chrome如何设置图像src为空?

当用户点击 “删除” 链接,我需要设置图像的src属性为空。当我这样做是使用

$('#img').prop('src', null); 

src不是空的,但点到当前的URL

,如果我使用

$('#img').removeProp('src'); 

删除src从来没有让我将其分配回到未来

完成此操作的最佳方法是什么?

+1

请参见[这个答案](http://stackoverflow.com/a/8425853/561731) – Neal

+0

空字符串其实是可以对图像的有效SRC,从技术上来说它不是“删除”src。与'#'相同,它会使用当前的URL加上散列。真实的例子:http://lcamt​​uf.coredump.cx/squirrel/你最终会发送一个请求到当前的URL。我会建议使用另一种方法。 –

回答

8

尝试使用attr()

Live Demo

$('#img').attr('src', ''); 

当你有id选择。使用本地javascript方法document.getElementById将为您提供更多性能优势。您也可能需要将#设置为src而不是empty字符串。

document.getElementById('img').src = "#"; 
+4

恐怕这不起作用。仍指向当前的网址,而不是具有空值。 – StackOverflower

+0

我在我的答案中添加了现场演示,检查它是否可行 – Adil

+0

@Adil [这不适用于真实图像](http://jsfiddle.net/Vnj53/1/) – Neal

6

我刚刚访问垫层<img>节点和src的值设置为空字符串

$('#img')[ 0 ].src = '#'; 

小提琴:http://jsfiddle.net/P4pRu/


更新:它看起来像不满意的时候,我们只是传递一个空字符串。 Firefox仍然显示出预期的行为(我非常肯定,这也可以在几周/版本之前在Chrome中运行)。

但是,例如传递一个#,工作正常。


更新2:

即使imgNode.removeAttribute('src');也不再删除图像的可视化表示了在Chrome(有趣的...)。

+1

恐怕这不起作用。仍指向当前的网址,而不是具有空值。 – StackOverflower

+1

@ TimmyO'Tool:的确如此。对我来说,奇怪的行为似乎是“新的”。但是,如果您传入'#',它就会起作用。 – jAndy

+2

空字符串实际上可以是一个图像的有效src,从技术上说,它不是“删除”src。与'#'相同,它会使用当前的URL加上散列。真实的例子:http://lcamt​​uf.coredump.cx/squirrel/你最终会发送一个请求到当前的URL。 –

0

属性'src'不是一个真正的属性,它是一个属性。把属性看作可以用布尔值或者列表和属性来设置的东西,因为它们更加动态。

$('#img').attr('src', ''); 

在jQuery 1.6的,所述.prop()方法提供了一种方式,以明确地检索属性值,而。ATTR()获取属性 - http://api.jquery.com/prop/

+0

测试你的答案,它不起作用(尽管你的笔记是正确的)。 –

+0

是的,它的确如此。刚刚在jsfiddle中测试 - http://jsfiddle.net/aAfvx/1/ –

+0

看起来这是一个Chrome问题,请在Chrome中尝试。 –

相关问题