Tôi đang tạo hộp kiểm bằng JavaScript, thêm người nghe onchange
vào họ và thêm chúng vào div bằng cách sử dụng vòng lặp. Tuy nhiên, chỉ hộp kiểm cuối cùng mới có trình xử lý sự kiện được đăng ký.Tại sao trình xử lý sự kiện chỉ đăng ký trên phần tử cuối cùng được tạo trong vòng lặp?
Tại sao điều này lại xảy ra?
var div = document.getElementById("mydiv");
for (var i = 0; i < 5; i++) {
div.innerHTML += ("<br>" + i);
var input = document.createElement("input");
input.type = "checkbox";
input.onchange = function() {
alert("foo");
};
div.appendChild(input);
}
<div id="mydiv"></div>