Я пытаюсь отобразить результаты функции getJSON внутри
<ul>
<li> item 1 link</li>
<li> item 2 link</li>
<li>item 3 link </li>
... etc.
</ul>
Я пробовал:
$.getJSON($URL, function(data) {
var array = $.map(data, function(item) {
return {
title: item.title,
id: item.id
};
});
for (var i = 0; i < 11; i++) {
$('#related-sites').append("<li>"+array.title+"</li>");
}
});
Но у меня есть ошибка "Не определено": / Помогите, пожалуйста!



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


Вы ищете свойство title массива ... а не конкретные элементы в массиве
Изменять
$('#related-sites').append("<li>"+array.title+"</li>");
К
$('#related-sites').append("<li>"+array[i].title+"</li>");
// ^^^
Кроме того, ваша карта кажется избыточной, и вы можете просто перебрать сами данные и получить те же результаты.
Я не понимаю, зачем вам этот $.map, а также почему вы жестко запрограммировали цикл с индексом с магическими значениями, также вы пропустили индекс здесь array.title, попробуйте вместо этого:
$.getJSON($URL, function(data) {
var iHtml = '';
$.each(data, function(i, item) {
iHtml += '<li>' + (item.title || '') + '</li>';
});
$('#related-sites').append(iHtml);
});
Отредактировано:
I need to get only the first ten items
$.getJSON($URL, function(data) {
var iHtml = '';
$.each(data, function(i, item) {
if (10 <= i) return false;
iHtml += '<li>' + (item.title || '') + '</li>';
});
$('#related-sites').append(iHtml);
});
Мне нужно получить только первые десять элементов, поэтому я использовал цикл for.
Попробуйте отладить, это действительно должно быть первое, что нужно сделать, это легко обнаруживаемая ошибка