Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何为img setAttribute设置回退映像_Javascript_Image_Setattribute - Fatal编程技术网

Javascript 如何为img setAttribute设置回退映像

Javascript 如何为img setAttribute设置回退映像,javascript,image,setattribute,Javascript,Image,Setattribute,我有一个img元素: var photo = document.createElement("img"); 这是由存储在对象数组中的名称的照片提供的,因此我像这样“提供”照片: photo.setAttribute('src', './pics/' + myarray[id].Name + '.jpg'); 它工作得很好 唯一不起作用的是为没有pic的元素设置带有默认照片的属性 我试着在那一行上面做一个setAttribute行,为所有元素设置一个“默认”图片,希望第二行用适当的图片替换有

我有一个img元素:

var photo = document.createElement("img"); 
这是由存储在对象数组中的名称的照片提供的,因此我像这样“提供”照片:

photo.setAttribute('src', './pics/' + myarray[id].Name + '.jpg');
它工作得很好

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

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

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


谢谢

您可以使用jQuery吗。这是您描述的问题的解决方案。如果图像返回为404,则会应用默认图像


只需在必要时设置默认值

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

谢谢你的回答!它不起作用,因为在第二种情况下,
myarray[id].Name
也是正确的,只是它不存在pic。myarray[id]的值是多少。pic不存在时的Name?它将是用户输入,因此可以是任何内容。例如:当图片存在时,这是因为是我创建的产品,所以我有一张具有正确名称的照片。如果图片不存在,它是一个名称为用户输入的产品。。。数组保持正常,但我只是没有它的照片,所以我希望找到一种方法来指定“当用户输入的名称与您存储的任何图片不匹配时放置此默认图片”。我对jQuery不是很好,但我认为这与常规的JS:
photo.onerror
?这是一个很好的观点,我想这正是我需要的!也许。我使用jQuery来处理类似的事情,因为它们处理您可能遇到的大多数跨浏览器问题。
photo.setAttribute('src', './pics/' + ( myarray[id].Name ? myarray[id].Name : 'default' ) + '.jpg');