Если путь к изображению существует, замените текст, если не отображается исходное изображение [дубликаты]

0

Привет, я создал немного кода для замены изображений с их версиями с более высоким разрешением. Похоже, это

$("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 комментарий
Теги:

1 ответ

0

Здесь прямое выполнение этого ответа:

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню