使用javascript / jquery

时间:2017-05-31 23:36:08

标签: javascript jquery json

单击“+”按钮时,我的表行正在动态生成。当我填充字段并单击“提交”按钮(“+”旁边)时,我的JSON会显示到控制台,如下图所示。

HTMLtoJSON

当我生成JSON时,我想要排除未填充的行(在本例中为第3行)。另外,我想要排除第1列(由3个按钮组成)。

正如我们所看到的,JSON数据包含许多“\ n”和\ t“,这很烦人。

我通过参考一些Stack Overflow页面编写了以下代码。

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));

}

1 个答案:

答案 0 :(得分:2)

未填充的行包含<input>个元素。您可以使用排除它们的选择器。

$('table tbody tr:not(:has(input))').each(...)

您可以使用.trim()删除标题周围的所有换行符和其他空白字符:

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)');