【发布时间】:2017-06-11 10:40:21
【问题描述】:
我需要将 json 中的数据作为行附加到表中。我需要在他们自己的 tbody 中附加 id="project" 作为第一行的行。如果检测到新项目,将创建新的 tbody,项目和任务将拥有自己的 tbody。如果行 id 是“任务”,那么它将在项目行之后创建。我该怎么做?
Json 数据 =
var jason = {"projects":[{"projName":"1","task_data":[{"taskName":"1","task_detail_data":[{"hr_Sun":"0.00","hr_Mon":"0.00","hr_Tue":"0.00","hr_Wed":"0.00","hr_Thu":"0.00","hr_Fri":"0.00","hr_Sat":"0.00"}]},{"taskName":"1","task_detail_data":[{"hr_Sun":"0.00","hr_Mon":"0.00","hr_Tue":"0.00","hr_Wed":"0.00","hr_Thu":"0.00","hr_Fri":"0.00","hr_Sat":"0.00"}]}]}]}
要在表格中显示的代码 =
function displayData(data) {
var json = JSON.parse(data);
for (let i = 0; i < json.projects.length; i++) {
var tb = document.getElementById("table");
var x = document.createElement("tbody");
x.setAttribute("id", "Section");
x.setAttribute("class", "theBody");
tb.appendChild(x);
var tr = document.createElement('tr');
tr.setAttribute("id", "Project");
tr.setAttribute("class", "p_name");
tr.setAttribute("style", "background-color: #e8e8e8; color:black");
x.appendChild(tr);
//add data
for (let j = 0; j < json.projects[i].task_data.length; j++) {
var trow = document.createElement('tr');
trow.setAttribute("id", "Task");
trow.setAttribute("class", "val");
x.appendChild(trow);
//add data
}
}
}
据说它会很好地工作,但是,当我运行代码时,行会变得杂乱无章,有时 body 会拥有错误的项目和任务,有时根本没有孩子。这是错误的。
请帮忙。谢谢
**这是我想得到的 **但这就是我得到的(注意 A:1 B:2 C:3) **这是来自开发工具。注意到前两个 tbody 没有捕获自己的项目和任务并留空
【问题讨论】:
-
不清楚。你能勾勒出表格的初始状态示例,然后是不同类型插入的状态吗?
-
我添加了一些图片供您理解。谢谢
标签: javascript jquery html json append