Показывает ошибку с каждым изображением, которого нет на указанном пути

#javascript #jquery #html #json

#javascript #jquery #HTML #json

Вопрос:

Я использую данные json, полученные с сервера, для отображения изображений. Я получаю путь ко всем изображениям и превращаю их в строку «html» и, наконец, использую $("#result").html(html); для добавления всего html к результату div. Моя проблема в том, что есть несколько путей к изображению, но соответствующего этим путям изображения нет, и я хочу отобразить сообщение об ошибке в этом случае. Я могу использовать

  $('img').error(function(){
    console.log('error');
});
  

но проблема в том, что я хочу добавить сообщение об ошибке с каждым изображением, которого нет. Не удается это сделать, потому что я отображаю все изображения коллективно в конце, используя $("#result").html(html)
Пожалуйста, решите мою проблему.

Спасибо Romi

Комментарии:

1. я думаю, вам нужно сначала поработать над вашим принятием и голосованием.

2. Vivkek: Что это значит??? необходимо поработать над подачей голосов и принятием

3. @Romi-вы должны принять те ответы, которые точно отвечали на ваш ответ, нажав галочку, и вы также можете проголосовать, нажав стрелку вверху слева, чтобы ответить

Ответ №1:

Вы можете отображать сообщения об ошибках, соответствующие вашим изображениям, примерно так:

 $('img').error(function(){
    $(this).after("<p>Image was not found</p>");
});
  

Или вместо этого вы можете показать общее не найденное изображение вместо тех, которые не были найдены следующим образом:

 $('img').error(function(){
    $(this).attr('src', 'not-found image path');
});
  

Ответ №2:

попробуйте это.

  $("#result").html(html);
        $(("#result").find('img').error(function(){ 
            $(this).after("<br>Image was not found");   

            });
  

надеюсь, теперь вы видите, в чем проблема :), если все еще нет, дайте мне знать.

Комментарии:

1. @Vivek: Все работает нормально, если я помещу окно предупреждения, я увижу, что оно работает. Но это не добавляет сообщение «Изображение не найдено», почему это так??

2. Вивек: Спасибо, теперь это работает, но работает, когда я добавляю эту функцию после $ («#result»).html (msg);. Но при выполнении этого $ (this) не работает, я должен использовать $ (‘img’). проблема в том, что он добавляет сообщение со всеми изображениями, где я просто хочу добавить сообщение только с изображением, которого нет в указанном пути

3. привет!!! -надеюсь, вы избавитесь от своей проблемы, теперь пришло время действовать .. не забудьте проголосовать за ответ, если это вам поможет.

4. да, я просто пробую последний вариант в своем ответе

5. эта строка неверна — $(html).find('img').error(function(), вы добавили свой HTML-код в результирующий div, поэтому теперь вам нужно заглянуть в этот результирующий div, чтобы получить неправильный img, таким образом- $(("#result").find('img').error(function(){ $(this).after("<br>Image was not found"); });