Javascript 如果存在图像路径,则替换文本;如果不存在,则显示原始图像

Javascript 如果存在图像路径,则替换文本;如果不存在,则显示原始图像,javascript,jquery,Javascript,Jquery,嗨,我已经设置了一些代码,用更高分辨率的版本替换图像。看起来像这样 $("img[src*='.jpg']").each(function(){ $(this).attr('src',$(this).attr('src').replace('.jpg','.highres.jpg')); }); 它只查找所有图像并替换文件名 但有时,高分辨率图像的文件名不是'highres.jpg' 我想做的是,如果highres.jpg存在,显示那个。否则只需显示原稿 以下是我尝试过的: $("i

嗨,我已经设置了一些代码,用更高分辨率的版本替换图像。看起来像这样

$("img[src*='.jpg']").each(function(){
   $(this).attr('src',$(this).attr('src').replace('.jpg','.highres.jpg'));
}); 
它只查找所有图像并替换文件名

但有时,高分辨率图像的文件名不是'highres.jpg'

我想做的是,如果highres.jpg存在,显示那个。否则只需显示原稿

以下是我尝试过的:

 $("img[src*='.jpg']").each(function(){
    var replaceImage = function() {
        $(this).attr('src',$(this).attr('src').replace('.jpg','.highres.jpg'));
     };
    if (replaceImage > -1) {
    replaceImage;
    };
}); 

我很确定我在抓救命稻草,还有更好的方法。。。因为它不工作:)

下面是答案的直接实现:


可能重复:谢谢你的链接,但我没有发现它与我的例子有足够密切的关系。不过,这确实让我找到了解决办法,所以谢谢你。。希望能有帮助。
 $("img[src*='.jpg']").each(function(){
    var imgSrc = $(this).attr('src');                       // The original src
    var highresSrc = imgSrc.replace('.jpg','.highres.jpg'); // High res src

    var img = new Image();

    img.onerror = function() {  // In case of error, revert to original
        img = new Image();
        img.src = imgSrc;
    };

    /*
    img.onload = function() {
        // Image has loaded successfully. Do something if you want.
        ...
    };
    */ 

    img.src = highresImg;       // Try loading highres
});