In my code in the case of forEach
we can get the current value, in the case of for
we get the last value of the array. How does the connection between a button and the current value in the array work?
var arr = [{ name: "Model S" },
{ name: "Model X" }, { name: "Model 3" }];
var brElt = document.createElement("br");
arr.forEach(function (el) {
var btnElt = document.createElement("button");
btnElt.textContent = "Ok";
btnElt.addEventListener("click", function (e) {
e.target.textContent = el.name;
e.target.style.color = "blue";
})
document.getElementById("contenu").appendChild(btnElt);
document.getElementById("contenu").appendChild(brElt);
});
for (var i in arr) {
var btnElt = document.createElement("button");
btnElt.textContent = "Ok";
btnElt.addEventListener("click", function (e) {
e.target.textContent = arr[i].name;
e.target.style.color = "green";
})
document.getElementById("contenu").appendChild(btnElt);
document.getElementById("contenu").appendChild(brElt);
};
<div id="contenu"></div>