У меня есть следующий код 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);
};
Может кто-нибудь дать мне некоторое представление в коде? Как указать условие для установки заголовка изображения. Если ответ не определен, установите заголовок пустым.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Просто добавьте атрибут 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);
};
попробуйте это, вы также можете использовать тернарный оператор, если это необходимо.
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>
Большое спасибо!! Это работает!