javascript - 无法使用 JavaScript 在表格中添加表格数据
问题描述
我正在尝试制作一个待办事项列表类型的 Web 应用程序,但无法将表格数据添加到我的表格主体中,我已经搜索了很多,并且我尝试控制台记录每个元素,但这个错误仍然出现在我的项目中。数据、数据、元素和键所有这些变量都给出了预期的输出,但我认为我的逻辑在某个地方是错误的。
我的代码如下:
let id, name, rank, year, unit, place, incident, photo, add, table;
id = document.getElementById("id");
name = document.getElementById("name");
rank = document.getElementById("rank");
year = document.getElementById("year");
unit = document.getElementById("unit");
place = document.getElementById("place");
incident = document.getElementById("incident");
photo = document.getElementById("photo");
add = document.getElementById("add");
table = document.getElementById("table");
add.addEventListener("click", (e) => {
e.preventDefault();
let data = [
{
id: id.value,
name: name.value,
rank: rank.value,
year: year.value,
unit: unit.value,
place: place.value,
incident: incident.value,
photo: photo.value,
},
];
createTable(data);
});
const createTable = (data) => {
let datas = Object.keys(data[0]);
generateTable(table, datas);
generateTableHead(table, datas);
};
const generateTableHead = (table, data) => {
let thead = table.createTHead();
let row = thead.insertRow();
for (let key of data) {
let th = document.createElement("th");
let text = document.createTextNode(key);
th.appendChild(text);
row.appendChild(th);
}
};
const generateTable = (table, data) => {
for (let element of data) {
let row = table.insertRow();
for (key in element) {
let cell = row.insertCell();
let text = document.createTextNode(element[key]);
console.log(element[key]);
cell.appendChild(text);
}
}
};
我正在关注以下教程 https://www.valentinog.com/blog/html-table/
获得以下输出
解决方案
试试这个 REVERTfor...of
而不是for...in
:
更新
@RahulGurujala 在您正在做的教程中更加关注细节之后,只需更改它(下面的解释):
const createTable = (data) => {
let datas = Object.keys(data[0]);
generateTable(table, datas);
generateTableHead(table, datas);
};
对此:
const createTable = (data) => {
let datas = Object.keys(data[0]);
generateTable(table, data); // notice i'm sending the data array and not only the datas arr with the names only
generateTableHead(table, datas);
};
当您只需要将键名发送到和generateTable
数据到generateTableHead
generateTableHead
generateTable
推荐阅读
- python - 使用列表中的字典附加字典列表(圆形?)
- batch-file - 如何在 For 循环的变量中批量添加引号?
- php - 将sql字符串变量传递给javascript函数
- haskell - 是否可以在 Liquid Haskell 中使用单行合约?
- http - Jmeter:如何为每个断言创建单独的报告?
- azure - 是否可以在 Azure Pipelines 中将“文件夹”视图设为默认?
- websocket - 在 Tomcat 上运行 cometd 的 websocket 传输的“未知 Bayeux 传输”
- git - Git 多个存储库(第三个存储库的本地更改的远程副本)
- c++ - 无法打开输入文件 Poco.obj 或 Find PocoFoundationd.lib
- elasticsearch - 订单条款聚合桶按热门点击子聚合