如果我使用 javascript 创建了这些复选框,我该如何跟踪更改的复选框?
How can I keep track of the changed checkboxes if I created those checkboxes using javascript?
在一个循环中,我使用
创建了多个复选框
checkbox = document.createElement("input");
我尝试在循环中添加它,但没有帮助
checkbox.setAttribute("onchange", function toggle() {});
我需要某种类型的循环外部侦听器来检查更改了哪个复选框,以便我可以更改布尔变量的 localStorage 中的值。
checkboxes = document.querySelectorAll(".checkbox");
checkboxes[0].addEventListener("change", function toggle() {
lists[checkboxes[0].value].tasks[checkboxes[0].id].completed = this.checked;
localStorage.setItem("lists", JSON.stringify(lists));
});
我想要这样的东西,而不必为复选框数组提供静态索引。
您可以在创建它们的循环中添加事件侦听器,并使用 this
关键字或 event.target
:
访问已单击的复选框
checkbox.addEventListener("change", function toggle(event) {
// this = checkbox.
lists[this.value]?.tasks[this.id]?.completed = this.checked;
localStorage.setItem("lists", JSON.stringify(lists));
});
您可以使用它的 id
或 data-*
属性作为您的 lists
赞
的键
在一个循环中,我使用
创建了多个复选框checkbox = document.createElement("input");
我尝试在循环中添加它,但没有帮助
checkbox.setAttribute("onchange", function toggle() {});
我需要某种类型的循环外部侦听器来检查更改了哪个复选框,以便我可以更改布尔变量的 localStorage 中的值。
checkboxes = document.querySelectorAll(".checkbox");
checkboxes[0].addEventListener("change", function toggle() {
lists[checkboxes[0].value].tasks[checkboxes[0].id].completed = this.checked;
localStorage.setItem("lists", JSON.stringify(lists));
});
我想要这样的东西,而不必为复选框数组提供静态索引。
您可以在创建它们的循环中添加事件侦听器,并使用 this
关键字或 event.target
:
checkbox.addEventListener("change", function toggle(event) {
// this = checkbox.
lists[this.value]?.tasks[this.id]?.completed = this.checked;
localStorage.setItem("lists", JSON.stringify(lists));
});
您可以使用它的 id
或 data-*
属性作为您的 lists
赞