2017-05-31 104 views
1

當我單擊「+」按鈕時,我的表格行正在動態生成。當我填充字段並單擊提交按鈕(「+」旁邊)時,我的JSON會顯示在控制檯上,如下圖所示。使用javascript/jquery將HTML表格數據轉換爲JSON

HTMLtoJSON

當我產生JSON,我要排除未填充的行(在這種情況下,第3行)。另外,我想排除列1(其中包含3個按鈕)。

正如我們所看到的JSON數據是由許多「\ n」和\ t」,這是煩人的。

我寫參照一些堆棧溢出頁的下面的代碼。

function createJSON(){ 

var myJSON = { Key: [] }; 

var headers = $('table th'); 
$('table tbody tr').each(function(i, tr){ 
    var obj = {}, 

    $tds = $(tr).find('td'); 

    headers.each(function(index, headers){ 
    obj[$(headers).text()] = $tds.eq(index).text(); 
    }); 

    myJSON.Key.push(obj); 
}); 

console.log(JSON.stringify(myJSON)); 

} 

回答

2

沒有填充該行具有<input>元素。您可以使用排除他們選擇。

​​

你可以擺脫所有的換行符和其他空白CH的周圍.trim()標題aracters:

headers.each(function(index, headers){ 
    obj[$(headers).text().trim()] = $tds.eq(index).text(); 
}); 

要跳過第一列,您可以在選擇使用:gt(0)

var headers = $('table th:gt(0)'); 
var $tds = $(tr).find('td:gt(0)'); 
+0

感謝Barmar,這工作,但我怎麼跳過第1列? JSON仍然是這樣{「Key」:[{「」:「」,「Field Name」:「a」,「Field Type」:「Text」,「Special Field Subtype」:「USD」 :「f」}]} –

+0

@AakashTakale在選擇器中使用':gt(0)'。 – Barmar