Creo varios botones y les doy una identificación en un bucle y me gustaría que cuando hagamos clic en él, su identificación se muestre en la consola. Esto es lo que traté de hacer, pero el programa devuelve la última identificación asignada después del ciclo.
for (var i = 0; i < 3; i++) { var button = document.createElement('button'); button.textContent = "Add to cart"; button.setAttribute("data-id", i+1); card.appendChild(button); button.onclick = function() { let attribut = button.getAttribute("data-id"); console.log(attribut) };}
Cuando se llama al onclick , el button todavía está configurado en el último botón en su ciclo; no hay referencia al button en su onclick . En su lugar, intente pasar el evento ( e ) al onclick , luego haga referencia al objetivo del evento con e.target .
for (var i = 0; i < 3; i++) { var button = document.createElement('button'); button.textContent = "Add to cart"; button.setAttribute("data-id", i+1); document.body.appendChild(button); button.onclick = function(e) { let attribut = e.target.getAttribute("data-id"); console.log(attribut) }; }