1

私は img 要素を持っています:

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

これは、オブジェクトの配列に名前が格納された写真によってフィードされるため、次のように写真を「フィード」します。

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

そして、それは完璧に機能します。

機能しない唯一のことは、写真を持たない要素のデフォルトの写真で属性を設定することです。

その上の行を実行しようとしましたが、setAttributeすべての要素に「デフォルト」の画像を設定し、2行目が適切な画像を持つ要素を置き換え、デフォルトのものをそのままにしておくことを期待していますが、いいえ...スキーム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 に答える