Trabajando en una aplicación de Spotify para una práctica en la que estoy almacenando valores de objetos de artistas buscados en almacenamiento localstorage , luego quiero obtener el nombre del artista con e.target pero solo está registrando el primer resultado de localstorage . ¿Por qué no se dirige a todos los elementos creados de esta manera?
por ejemplo, si busqué y almacené 4 artistas, solo registra el nombre del primer objeto almacenado.
object.keys(localStorage).forEach((key) => { artistObj = JSON.parse(localStorage.getItem(key)); artistList = document.getElementById("displayResults"); artistName = document.createElement("a"); artistResult = document.createElement("li"); artistName.innerHTML = artistObj[0].items[0].name; artistResult.appendChild(artistName); artistList.appendChild(artistResult); }); artistName.addEventListener("click", getRelatedArtists); function getRelatedArtists(e) { console.log(e.target); }Todo lo que necesita es agregar el detector de eventos dentro del ciclo para agregarlo para cada elemento
object.keys(localStorage).forEach((key) => { let artistObj = JSON.parse(localStorage.getItem(key)); let artistList = document.getElementById("displayResults"); let artistName = document.createElement("a"); let artistResult = document.createElement("li"); artistName.innerHTML = artistObj[0].items[0].name; artistResult.appendChild(artistName); artistList.appendChild(artistResult); artistName.addEventListener("click", getRelatedArtists); }); function getRelatedArtists(e) { console.log(e.target); }