如何根据图像是否存在更改图像 src

wes*_*Kid 0 ajax jquery image src

我正在尝试根据系统上是否存在与数据库条目对应并用 id 作为其名称的一部分标识的图像来加载两个不同的缩略图图像之一。

为了清楚起见,稍微简化一下,如果名为 {id}-thumb.png 的特定图像存在,那么我想使用 jQuery 将其名称加载到 HTML 的 src 中。如果图像不存在,我想加载一个名为thumbnail.png 的通用缩略图图像。

这是我到目前为止:

var image_path = id + "-thumb.png";
$.ajax({
    url: image_path,
    type: "HEAD",
    error: function() {
        $("li#" + id + " .thumbnail").attr("src","thumbnail.png");
    },
    success: function() {
        $("li#" + id + " .thumbnail").attr("src",id + "-thumb.png");
    }
});
Run Code Online (Sandbox Code Playgroud)

然后我通过建立一个字符串变量 list_item 来生成要插入的新 HTML

var list_item = "<li id='" + id + "'>";
list_item += "<figure>";
list_item += "<img class='thumbnail' src=''></a>";
list_item += "</figure>";
Run Code Online (Sandbox Code Playgroud)

最后,我将这个新的 list_item 变量添加到现有的 ul 中:

$(".list ul").prepend(list_item);
Run Code Online (Sandbox Code Playgroud)

但是我没有得到图像并且查看生成的 HTML,src 是空的。

任何想法都非常感谢!

Dro*_*out 5

如果图像不存在,您可以使用“onerror”参数。像这样生成图像标签:

<img src="something.jpg" onerror="this.src='something_else.jpg'" />
Run Code Online (Sandbox Code Playgroud)

  • 这对我来说很好 - 非常简单的解决方案 - 非常感谢。 (2认同)