Привет и добро пожаловать в SO!
Позвольте мне попытаться дать некоторые идеи, проходящие через ваш код ...
Здесь вы создаете новые элементы DOM:
let li = document.createElement("li");
console.log(li);
let a = document.createElement("a");
a.id = "refdetails";
a.href = "";
let img = document.createElement("img");
img.alt = "";
img.src = "";
Теперь обратите внимание на следующие строки.Вы присваиваете уникальный идентификатор элементам, в данном случае « image » и « title »
img.id = "image";
let span = document.createElement("span");
span.id = "title";
a.appendChild(img);
a.appendChild(span);
li.appendChild(a);
albumlist.appendChild(li);
И затем вы пытаетесь присвоить некоторые значенияэти элементы:
$('#refdetails').attr("href", url);
$('#image').attr("src", data[x].albumarturl);
$('#image').attr("alt", data[x].albumtitle);
$('#title').text(data[x].albumtitle);
Вы пытаетесь добавить в дом точно такие же элементы (#image
и #title
) в каждом цикле. Элементы должны иметь уникальный идентификатор, поэтому, если вы попытаетесь вставить новый узел с тем же идентификатором, предыдущий будет удален до вставки нового .
Если вы хотитечтобы увидеть все названия альбомов в DOM, вы должны добавлять новый элемент к DOM в каждом цикле.
Вы можете играть с этой идеей:
for (let i = 0; i < data.length; i++){
let span = document.createElement("span");
span.id = "title" + i;