2017-05-31 96 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