【发布时间】:2021-07-01 21:21:21
【问题描述】:
目标:获取所有表格行(单元格)数据并添加到数组中
问题:如果多于 1 行,它会覆盖先前添加的数组条目,而不是将其添加到数组的末尾。这会导致数组的最后一个表行数据集重复/三次/等(与表中存在的行一样多)
设置: 我有一个动态 html 表,用户可以通过输入用户名和年龄来添加行,然后单击“添加”按钮。 Load 按钮必须获取表体元素并填充一个对象,在 for 循环之后必须获取 innerText,更新对象并将对象 push() 到数组中。但这是结果: Screenshot of console.log of array
let roleArr = [];
loadBtn.addEventListener("click", () => {
roleTableData();
});
function roleTableData() {
let test = tblRows.children;
const collectRoles = {
uName: "",
uAge: "",
};
for (let i = 0; i < test.length; i++) {
collectRoles.uName= test[i].children[0].innerText;
collectRoles.uAge= test[i].children[1].innerText;
roleArr.push(collectRoles);
}
}
【问题讨论】:
-
为什么不将代码重构为首先将姓名和年龄作为对象添加到数组中,然后使用数组创建表?然后,您只需管理数据,而不是管理 html,而是让模板在每次创建对象时创建一个新行。
-
感谢@Chris 的建议。我目前正在研究该选项。按照你建议的方式做会更有意义。
标签: javascript arrays object dynamic push