Javascript 将具有各种条件的html表转换为Json

Javascript 将具有各种条件的html表转换为Json,javascript,jquery,html,json,Javascript,Jquery,Html,Json,我坚持根据下面的HTML生成JSON <table> <thead> <tr> <th>Date</th> <th>Rainfall <small>(Milimeter)</small></th> <th>Reservoir Level <small>(

我坚持根据下面的HTML生成JSON

<table>         
    <thead>
        <tr>
            <th>Date</th>
            <th>Rainfall <small>(Milimeter)</small></th>
            <th>Reservoir Level <small>(Meter)</small></th>
            <th>T/Water <small>(Meter)</small></th>
            <th>W/Supply <small>(Cumec)</small></th>
            <th>C/Station <small>(Cumec)</small></th>
            <th>Remarks </th>
            <th>Task</th>
        </tr>
    </thead>                
    <tbody>
        <tr>
            <td>01/06/2014</td>
            <td>120</td>
            <td>120</td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td><span class="glyphicon glyphicon-ok"></span></td>
        </tr>
        <tr>
            <td>02/06/2014</td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td><span class="glyphicon glyphicon-ok"></span></td>
        </tr>
        <tr>
            <td>03/06/2014</td>
            <td><input type="text" id="44"></td>
            <td><input type="text" id="45"></td>
            <td><input type="text" id="46"></td>
            <td><input type="text" id="47"></td>
            <td><input type="text" id="48"></td>
            <td><input type="text" id="49"></td>
            <td><button class="btn btn-info btn-xs Save">Save</button></td>
        </tr>
        <tr>
            <td>04/06/2014</td>
            <td><input type="text" id="44"></td>
            <td><input type="text" id="45"></td>
            <td><input type="text" id="46"></td>
            <td><input type="text" id="47"></td>
            <td><input type="text" id="48"></td>
            <td><input type="text" id="49"></td>
            <td><button class="btn btn-info btn-xs Save">Save</button></td>
        </tr>
    </tbody>
    <tfoot>
        <tr>
            <td colspan="9"></td>
        </tr>
    </tfoot>
</table>
从上面的格式中,您可以看到单元格中的所有值都被捕获。至于元素,我需要提取它的值并将其附加到json结果。下面是我现在拥有的。到目前为止没有运气

buildTableBody = function() {
    var data = [],
        table = $('table', el)[0];
    for (var i=0; i<table.rows.length; i++) { 
        var tableRow = table.rows[i],
            rowData = {};                       
        for (var j=0; j<tableRow.cells.length; j++) {                           
            var rc = tableRow.cells[j].innerHTML.toLowerCase().replace(/ /gi,'');
            if ((rc) || (!_(rc).isBlank())) {
                //console.log(rc);
                var cl = _(_(rc).stripTags()).humanize();
                if (cl == 'task') {
                    rowData[i] = 'Status';
                } else if (cl == 'Save') {
                    rowData[i] = 'X'
                }
            } else {
                rowData[i] = ' ';                               
            }
        }
        data.push(rowData[i]); 
    } 
    //console.log(data);
    return data; 
}

谢谢

要获取或标记的文本值,请使用$'TH或TD object'。text。它给出的文本忽略了其中的HTML标记。。有关小样本,请参阅此链接。。谢谢你。但是我需要从每一个th和tdt中找出json,试试这个。。
buildTableBody = function() {
    var data = [],
        table = $('table', el)[0];
    for (var i=0; i<table.rows.length; i++) { 
        var tableRow = table.rows[i],
            rowData = {};                       
        for (var j=0; j<tableRow.cells.length; j++) {                           
            var rc = tableRow.cells[j].innerHTML.toLowerCase().replace(/ /gi,'');
            if ((rc) || (!_(rc).isBlank())) {
                //console.log(rc);
                var cl = _(_(rc).stripTags()).humanize();
                if (cl == 'task') {
                    rowData[i] = 'Status';
                } else if (cl == 'Save') {
                    rowData[i] = 'X'
                }
            } else {
                rowData[i] = ' ';                               
            }
        }
        data.push(rowData[i]); 
    } 
    //console.log(data);
    return data; 
}