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

时间:2014-05-13 17:20:01

标签: javascript jquery

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

$("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;
    };
}); 

非常确定我在这里和那里抓住吸管是一种更好的方法来做到这一点......导致它无法正常工作:)

1 个答案:

答案 0 :(得分:0)

以下是this答案的直接实现:

 $("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
});