Изменить путь у изображений которые не загрузились. JS

Подскажите пожалуйста, где ошибка в скрипте?

function imgResize(){
    $(".search-img img").each(function() {
      var image = this;
      image.onerror = function() {
      var src_img = this.src;
         if(src_img.indexOf("/1/") !== -1){
              var nesrc = src_img.replace("/1/", "/2/");
              this.src = nesrc;
         } else if(src_img.indexOf("/2/") !== -1){
              var nesrc = src_img.replace("/2/", "/1/");
              this.src = nesrc;
         }
      }
    })
}

Логика такая - Ищем изображения с ошибкой 404, и меняем у них путь с /1/ на /2/ и наоборот. nesrc - корректно исправляет, но не срабатывает this.src = nesrc почему то


Ответы (2 шт):

Автор решения: Igor

но не срабатывает this.src = nesrc почему то

Потому что не надо смешивать атрибут src и свойство src.

image.onerror = function() {
  var src = this.src;
  ...
  this.src = nesrc;
}
→ Ссылка
Автор решения: DiD

В опубликованной части вашего скрипта явных ошибок я не вижу. Возможно, ошибка кроется в какой-то другой части скрипта. Если картинка не хочет загружаться по смене src после ошибки загрузки, то стоит попробовать заменить тег <img> другой картинкой, которая еще не загружалась. Как-то так:

  var image = this;
  image.onerror = function() {
     var newImg = new Image();
     newImg.src = this.src.replace("/1/", "/2/");
     this.replaceWith(newImg);
  }
→ Ссылка