Поменять атрибут src если картинка не загрузилась
подскажите пожалуйста как поменять атрибут src если картинка не загрузилась, есть картинки(около 100шт), половина прогружается а у половины не правильный путь, он станет правильным если папку поменять с 1 на 2 или наоборот, ссылки на картинки такого вида https://t.ru/images/detailed/1/test.png
$(".search_ajax_prod-img img").each(function(){
var image = this;
image.onerror = function() {
var src = $(this).attr("src");
if(src.indexOf("/1/" > 0)){
var nesrc = src.replace("/1/", "/2/");
this.src = nesrc;
}
if(src.indexOf("/2/" > 0)){
var nesrc = src.replace("/2/", "/1/");
this.src = nesrc;
}
};
})
Ответы (1 шт):
Попробуйте вариант с использованием методов jQuery.
$(".search_ajax_prod-img img").on("error", function () {
const src = $(this).attr("src");
let nesrc;
if(src.indexOf("/1/") !== -1){
nesrc = src.replace("/1/", "/2/");
} else if(src.indexOf("/2/") !== -1){
nesrc = src.replace("/2/", "/1/");
}
$(this).attr('src', nesrc);
});
Также я исправил Ваш IndexOf, Вы круглую скобочку не там закрыли. Также хочу подчеркнуть, что Вы искали начиная с второго символа из-за знака ">" вместо ">=". Если это так и надо, тогда я возьму ваш вариант ;-)
P.S. А почему Вы не хотите на оборот сделать. В смысле загружать картинки асинхронно с помощью скрипта и в случае успеха вставлять в img, делая эффект lazyLoad?