将html表转换为json对象(表格单元格中包含文本框)

时间:2014-10-09 08:23:51

标签: javascript html json

我有这样的表

enter image description here

表格单元格中有文本框

我试图使用

将此表转换为json对象
var InvoiceData = {};   
InvoiceData = $('#invoiceDetailTbl').tableToJSON();

但文本框中的值未添加到json对象

2 个答案:

答案 0 :(得分:0)

function tableToJson(table) {

         var data = [];


    // first row needs to be headers
    var headers = [];
    for (var i=0; i<table.rows[0].cells.length; i++) {
        headers[i] = table.rows[0].cells[i].innerHTML.toLowerCase().replace(/ /gi,'');
    }

    // go through cells
    for (var i=1; i<table.rows.length; i++) {

        var tableRow = table.rows[i];
        var rowData = {};

        for (var j=0; j<tableRow.cells.length; j++) {

            rowData[ headers[j] ] = tableRow.cells[j].innerHTML;

        }

        data.push(rowData);
    }       

    return data; 
}

答案 1 :(得分:0)

我找到了解决方案,我手动完成了

var table = document.getElementById('invoiceDetailTbl');
    var tableRowCount = $("#invoiceDetailTbl > tbody > tr").length;
    for (var i = 1; i <= tableRowCount; i++) {
        var obj = {
            Inv_Date: table.rows.item(i).cells[0].innerText,
            Bill_No: table.rows.item(i).cells[1].innerText,
            Net_Amt: table.rows.item(i).cells[2].innerText,
            Paid_Amt: table.rows.item(i).cells[3].innerText,
            Pay_Dis: $(table.rows.item(i).cells[4]).find('input').val(),
            Paying_Amt: $(table.rows.item(i).cells[5]).find('input').val(),
            Balance: table.rows.item(i).cells[6].innerText,
        };
        InvoiceData.push(obj);
    }