0
我有一个动态表,我需要将所有数据捕获到json格式。我不能粘贴代码为我的表,但它看起来像这样:将动态表输入转换为嵌套数组json格式
<table id ="test">
<tbody id="Section1" class="theBody">
<tr class="pro" id="Project1">
<td><select class="pro"></select></td>
<td><input></input></td>
</tr>
<tr class="task" id="Task1">
<td><select class="tasks"></select></td>
<td><input></input></td>
</tr>
</tbody>
</table>
请参考下面的图片:根据图片 real table ,当我点击(+)按钮头,它会增加项目+活动行。 当我点击旁边的(+)按钮选择项目下拉菜单时,它将只为该项目添加行任务。 一个TBODY只包含一个项目。 一个项目可以有任何数量的活动。
好吧,现在我需要抓住jSOn格式的所有数据。我尝试运行这段代码和失败:
function json() {
var task = {};
var data = {};
var tasks = [];
var taskdetail = [];
var taskarray = [];
project = {};
task = {};
tasklist = {};
//date got from bootstrap calendar.
var Sdate = $('#startDate').html();
var Edate = $('#endDate').html();
var daterange = { "startDate": Sdate, "endDate": Edate };
task['week'] = daterange;
$('.theBody').each(function() {
var parent = $(this).attr('id');
var pro = $(this).find('tr:first').attr('id');
//alert(pro);
$(this).find('tr:first').each(function() {
task2 = {};
var projnameid = $(this).find('td:first');
var projnme = $('.pro', projnameid).val();
task['projectname'] = projnme;
$(this).siblings('tr').each(function() {
var item = {};
var item2 = {};
var tasknameid = $(this).find('td:first');
var tasknme = $('.task', tasknameid).val();
item['taskname'] = tasknme;
taskarray.push(item);
$(this).find("input:text").each(function() {
var inputname = $(this).attr("name");
var inputvalue = $(this).val();
item['day'] = inputname;
item['hour'] = inputvalue;
alert(inputname + inputvalue);
taskarray.push(item);
});
});
});
tasks.push(taskarray);
task.tasks = tasks;
console.log(task);
document.getElementById('output').innerHTML = JSON.stringify(task);
event.preventDefault();
});
}
我需要的JSON是这样的容貌:
{
"week":{
"startDate":"2017-01-1",
"endDate":"2017-01-7"
},
"projectname":"projectname1",
"tasks":[
{
"taskname":"taskname1",
"taskdetail":[
{
"day":"sun",
"hour":"0"
},
{
"day":"sat",
"hour":"0"
}
],
}
],
"projectname":"projectname2",
"tasks":[
{
"taskname":"taskname1",
"taskdetail":[
{
"day":"sun",
"hour":"0"
},
{
"day":"sat",
"hour":"0"
}
],
}
],
}
任何帮助/提醒/提示/修正将是受欢迎的双手。我真的需要你们在这个问题上的专业知识。谢谢
非常感谢!它的作品非常好:) – silentHijab