2012-12-21 44 views
1

我有一個img元素:如何設置一個備用圖像的img的setAttribute

var photo = document.createElement("img"); 

其通過與存儲在對象的數組名照片飼料,所以我「喂」照片像這樣:

photo.setAttribute('src', './pics/' + myarray[id].Name + '.jpg'); 

它的工作原理非常完美。

唯一不起作用的是爲沒有圖片的元素設置默認照片的屬性。

我試圖做一個setAttribute行上面那個,爲所有的元素設置一個「默認」圖片,希望第二行將替換爲正確的圖片有一個元素,並保持默認值不變,但沒有... console.log仍然顯示了期望name+jpg計劃的消息,它完全忽略了我的上一行(所以我非常確定它不是如何工作的)。

所以,如果你有一個img元素與許多實例通過一個數組,什麼是最好的方式來分配一個默認圖片的元素的圖片是不是故意指定的?

謝謝!

回答

2

你可以使用jQuery。這是您所描述問題的解決方案。如果圖像回來爲404,然後它會默認圖像應用

http://jsfiddle.net/gunderson/D3DSt/

var photo = document.createElement("img"); 
photo.setAttribute("id", "myPhoto"); 
$('body').append(photo); 

$("#myPhoto").attr("src", 'alogo3w.png').error(function() { 
    $(this).attr("src", "https://www.google.com/images/srpr/logo3w.png"); 
    }) 
​ 
+0

謝謝回答!它不起作用,因爲'myarray [id] .Name'在第二種情況下也是如此,僅僅是一張圖片不存在。 –

+0

當圖片不存在時,myarray [id] .Name的值是多少? –

+0

這將是用戶輸入,所以它可以是任何東西。例子是:當圖片存在時,這是因爲我創建的產品,所以我有一個合適的名稱的照片。如果圖片不存在,它是一個產品,其名稱是用戶輸入...該數組保持正常,但我沒有它的照片,所以我希望找到一種方法來指定「put當用戶輸入的名稱與您存儲的任何圖片不匹配時的默認圖片「。 –

1

剛剛成立僅默認值,如果neccessary

photo.setAttribute('src', './pics/' + (myarray[id].Name ? myarray[id].Name : 'default') + '.jpg'); 
相關問題