Вы перебираете список, а затем устанавливаете HTML. Это всегда будет устанавливать его на последний элемент в списке.
for (var i in list) {
let hold = fav_tem;
hold = hold.replace('%title', list[i].song);
hold = hold.replace('%artist', list[i].artist);
hold = hold.replace('%mood', list[i].mood);
document.getElementById('faves_field').innerHTML = hold;
};
Вы должны поместить переменную, которая содержит данные и свойство html, вне цикла
let hold = fav_tem;
for (var i in list) {
hold = hold.replace('%title', list[i].song);
hold = hold.replace('%artist', list[i].artist);
hold = hold.replace('%mood', list[i].mood);
};
document.getElementById('faves_field').innerHTML = hold;
РЕДАКТИРОВАТЬ:
Я только что быстро просмотрел ваш проект и увидел, что у fav_tem есть только один элемент (в моей голове я думал, что он содержит несколько из них).
Так что, как только вы сделаете замену, вот и все. Он не может заменить его снова, потому что текст больше не существует.
Так что в этом случае вы захотите добавить. Смотрите ниже:
let favitems = "";
for (var i in list) {
let hold = fav_tem;
hold = hold.replace('%title', list[i].song);
hold = hold.replace('%artist', list[i].artist);
hold = hold.replace('%mood', list[i].mood);
favitems = favitems + "<br />" + hold;
};
document.getElementById('faves_field').innerHTML = favitems;
Дайте мне знать, как это происходит, я верю, что это то, что вы ищете.