JS如果图像存在,则显示它。否则,显示文字

时间:2015-05-06 19:41:49

标签: javascript jquery innerhtml

我正在尝试创建一个脚本,检查徽标是否存在。如果没有,我想使用innerHTML来输出公司名称。

$.get(firmlogo)
    .done(function() { 
        document.getElementById('firmlogo').innerHTML = "<img src="+logooffirm+">";

    }).fail(function() { 
        document.getElementById('firmlogo').innerHTML = "<h2>"+nameoffirm+"</h2>";

    })

它现在显示文本,即使徽标在那里。我得到的错误是:

  

无法加载资源:服务器响应状态为404(未找到)   http://www.example.com/[object%20HTMLDivElement]无法加载资源:服务器响应状态为404(未找到)

关于我做错的任何想法?

2 个答案:

答案 0 :(得分:3)

你正在重新发明轮子。 HTML内置了此功能。

&#13;
&#13;
<h2><img src="bad_address" alt="Display this text instead" /></h2>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

如果没有所有这些内容,您可以使用alt来执行此操作。如果要检查某个网址中的图片是否可用,请使用此代码。

var image = new Image(); 
image.src = "img.jpg";
if (image.width == 0) {
  console.log("no image");
}
else console.log("image available");

或者您可以使用ajax方式

$.ajax({
    url: "img.jpg",
    type: "HEAD",
    error: function () { console.log("no image"); },
success:function(){console.log("image available");}

});