Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将动态数据从json文件部署到html表中?_Javascript_Json - Fatal编程技术网

Javascript 如何将动态数据从json文件部署到html表中?

Javascript 如何将动态数据从json文件部署到html表中?,javascript,json,Javascript,Json,下面的代码我已经尝试过了,但它不起作用。我想根据行id将数据动态部署到表中,所以将来如果有人对json文件进行更改,那么数据必须根据json数据显示到表的列中。例如,如果我从星期一到星期五在json文件中进行更改,那么数据必须显示在星期五列中,而不对javascript代码进行任何更改 var makeSchedule= { “附表”:[ {“fitnessClass”:“一”, “会话类型”:“俯卧撑”, “期限”:1, “allocatedTime”:{ “集团”:“A”, “日”:“星期

下面的代码我已经尝试过了,但它不起作用。我想根据行id将数据动态部署到表中,所以将来如果有人对json文件进行更改,那么数据必须根据json数据显示到表的列中。例如,如果我从星期一到星期五在json文件中进行更改,那么数据必须显示在星期五列中,而不对javascript代码进行任何更改

var makeSchedule=
{
“附表”:[
{“fitnessClass”:“一”,
“会话类型”:“俯卧撑”,
“期限”:1,
“allocatedTime”:{
“集团”:“A”,
“日”:“星期一”,
“位置”:“大厅”,
“时间”:“11”
},
“交替时间”:
[
{“集团”:“B”,
“日”:“周二”,
“位置”:“主大厅2”,
“时间”:“11”}
]
},
{“fitnessClass”:“两个”,
“会话类型”:“正在运行”,
“期限”:1,
“allocatedTime”:{
“集团”:“A”,
“日”:“星期三”,
“位置”:“主厅3”,
“时间”:“9”
},
“交替时间”:
[
{“集团”:“B”,
“日”:“星期四”,
“位置”:“主厅4”,
“时间”:“9”}
]
},
{“fitnessClass”:“三”,
“sessionType”:“引体向上”,
“期限”:1,
“日”:“星期四”,
“位置”:“主厅3”,
“时间”:“15”
}
]
}
addEventListener(“加载”,函数(){
makeSchedule.schedule.forEach(已预订=>{
如果(booked.allocatedTime.day=='thurs')
{                
document.getElementsByClassName('s9').innerHTML=`${booked.sessionType}`;
}            
});        
}); 

星期一
此行:

if(booked.allocatedTime==='thurs')
看起来应该是:

if(booked.allocatedTime.day ==='thurs')
根据你拥有的物品

document.getElementsByClassName('s9').innerHTML=
${booked.sessionType}

更新 @utkanos指出,
document.getElementsByClassName('s9').innerHTML
返回节点列表,而不是HtmleElement,这是另一个问题。更完整的代码块如下所示:

var makeSchedule={
“附表”:[{
“fitnessClass”:“一”,
“会话类型”:“俯卧撑”,
“期限”:1,
“allocatedTime”:{
“集团”:“A”,
“日”:“星期一”,
“位置”:“大厅”,
“时间”:“11”
},
“交替时间”:[{
“集团”:“B”,
“日”:“周二”,
“位置”:“主大厅2”,
“时间”:“11”
}]
},
{
“fitnessClass”:“两个”,
“会话类型”:“正在运行”,
“期限”:1,
“allocatedTime”:{
“集团”:“A”,
“日”:“星期三”,
“位置”:“主厅3”,
“时间”:“9”
},
“交替时间”:[{
“集团”:“B”,
“日”:“星期四”,
“位置”:“主厅4”,
“时间”:“9”
}]
},
{
“fitnessClass”:“三”,
“sessionType”:“引体向上”,
“期限”:1,
“日”:“星期四”,
“位置”:“主厅3”,
“时间”:“15”
}
]
}
addEventListener(“加载”,函数(){
makeSchedule.schedule.forEach(预订=>{
如果(booked.allocatedTime&&booked.allocatedTime.day==='mon'){
document.queryselectoral('.s9').forEach(el=>{
el.innerHTML=`${booked.sessionType}`;
})
}
});
});

星期一

您需要在父元素中搜索类

var x = document.getElementById("thurs");
  x.getElementsByClassName("s9")[0].innerHTML = `${booked.sessionType}`;

以本机方式进行此操作将非常乏味。我建议您使用一些模板渲染@miozzz是有办法的,因为我不应该使用任何tenplating引擎。我想你可以尝试使用Jquery数据表或类似的东西。如果您真的必须以本机方式执行,则必须使用循环、模板文本等来执行。要添加到这一点,
document.getElementsByClassName('s9')。innerHTML将不执行任何操作,因为
getElementsByClassName
返回节点集合。