我正在使用JQuery动态添加图像文件的链接。
+ "<td><a class='IconButton' id='trkimg" + k + "' href='IMSTORE\/" + trackings[k].Image + "'><span class='ui-icon ui-icon-image'></span></td>"
此代码检查数据库是否返回了值,并在未返回任何内容时隐藏链接:
if (trackings[k].Image == null) { $("#trkimg" + k).html(""); $("#trkimg" + k).removeClass('CustomButton'); }
如何使用JQuery验证返回的文件是否确实存在,如果不存在,则显示不同的图像?
答案 0 :(得分:1)
Javascript无法查看服务器上的文件。您可以向某个服务器端执行ajax请求,以检查该文件是否存在。
答案 1 :(得分:0)
根据SeanJA的建议,您可以使用ajax对图像进行“测试”,然后将图像实际附加到success
回调中,或者在error
回调中尝试另一个。< / p>
您要求图像两次,但可能在第一次尝试后进行缓存。不确定。
如果您想实际使用返回的图像,则需要对其进行编码。以下是有关如何执行此操作的说明的链接。但是没试过。
http://emilsblog.lerch.org/2009/07/javascript-hacks-using-xhr-to-load.html
var imageURI = "http://mydomain.com/myimage.jpg";
$.ajax(
{
type:'get',
dataType:'image/jpeg',
url:imageURI,
success:function() { $('body').append('<img src="' + imageURI + '" />'); },
error:function() { /* Change url in imageURI variable, and try again */ }
}
);
不确定这是否是最佳方式,但似乎有效。