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