如果我使用 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));
});

您可以使用它的 iddata-* 属性作为您的 lists

的键