Установите заголовок для изображений при условии в javascript

У меня есть следующий код javascript для отображения изображений и их информации. Из метода getImages() я получаю два массива ответов API. Первый массив содержит URL-адрес изображения, а второй — информацию о владельце и цене. Есть только 9 ответов API, из которых я получаю URL-адрес изображения, информацию о его владельце и цене. Таким образом, в цикле для 9 итераций URL-адрес изображения получается из API, а для остальных я устанавливаю изображение по умолчанию. Таким образом, для изображений по умолчанию нет информации о владельце и цене, поэтому для них не должно отображаться название.

window.onload = function () {
var allImages = "";
var owner,price;
var imgurl = getImages();
var imginfo = imgurl[1];
console.info(imginfo);
for (var i = 0, j = 298; i < j; i++) {

    if (imgurl[0][i] == undefined){imgurl[0][i] = "image/upload.png"}

    if (typeof imginfo[i] === "undefined"){owner = ""; price = ""; }
    else{owner = imginfo[i]["owner"]; price=imginfo[i]["price"];
    }

    allImages += '<img class = "myImg" src='+ imgurl[0][i] +' id='+i+'_id onclick = "openpopup(this.src)" title = "owner='+owner+', price='+price+'">';

}

$('#photos').append(allImages);

};

Может кто-нибудь дать мне некоторое представление в коде? Как указать условие для установки заголовка изображения. Если ответ не определен, установите заголовок пустым.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
280
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Просто добавьте атрибут title в свою часть else и удалите его из тега <img>.

window.onload = function() {
  var allImages = "";
  var owner, price;
  var imgurl = getImages();
  var imginfo = imgurl[1];
  console.info(imginfo);
  for (var i = 0, j = 298; i < j; i++) {

    if (imgurl[0][i] == undefined) {
      imgurl[0][i] = "image/upload.png"
    }

    if (typeof imginfo[i] === "undefined") {
      owner = "";
    } else {
      owner = 'title = "owner=' + imginfo[i]["owner"] + ', price=' + imginfo[i]["price"] + '"';
    }

    allImages += '<img class = "myImg" src=' + imgurl[0][i] + ' id=' + i + '_id onclick = "openpopup(this.src)" ' + owner + '>';

  }

  $('#photos').append(allImages);

};

Большое спасибо!! Это работает!

Varsh 22.04.2019 08:47

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

window.onload = function () {
var allImages = "";
var owner,price;
var imgurl = getImages();
var imginfo = imgurl[1];
console.info(imginfo);
for (var i = 0, j = 298; i < j; i++) {
    var title = "";
    if (imgurl[0][i] == undefined){imgurl[0][i] = "image/upload.png"}

    if (!(typeof imginfo[i] === "undefined")){
     title = "owner = "+imginfo[i]["owner"]+", price = "+imginfo[i]["price"]+"";
    }

    allImages += '<img class = "myImg" src='+ imgurl[0][i] +' id='+i+'_id onclick = "openpopup(this.src)" title = "'+title+'">';
}

$('#photos').append(allImages);

};
</script>

Другие вопросы по теме