1

我有一个 img 元素:

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

这是由存储在对象数组中的名称的照片提供的,所以我“提供”这样的照片:

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

它工作完美。

唯一不起作用的是为没有图片的元素设置带有默认照片的属性。

我试图在setAttribute上面做一行,为所有元素设置一个“默认”图片,希望第二行用正确的图片替换有一个元素,并保持默认的元素不变,但是没有......console.log仍然显示了期待name+jpg方案的消息,它完全忽略了我的前一行(所以我很确定它不是如何工作的)。

因此,如果您有一个img通过数组包含许多实例的元素,那么将默认图片分配给未有意指定图片的元素的最佳方法是什么?

谢谢!

4

2 回答 2

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");
  })
​
于 2012-12-21T19:29:17.300 回答
1

如有必要,只需设置默认值

photo.setAttribute('src', './pics/' + ( myarray[id].Name ? myarray[id].Name : 'default' ) + '.jpg');
于 2012-12-21T19:30:22.427 回答