我创建了几个按钮,并在循环中给它们一个 id,我希望当我们单击它时,它的 id 会显示在控制台中。这是我试图做的,但程序返回循环后分配的最后一个 id。
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)
};
}
当onclick
被调用时,button
仍然设置为循环中的最后一个按钮;在button
您的onclick
. 相反,尝试将事件 ( e
)传递给onclick
,然后使用 引用事件的目标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)
};
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句