FAILED HTML table to Javascript array
by perqa
HTML
<table border="1">
<thead>
<tr>
<th>line</th>
<th>value1</th>
<th>value2</th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="2">1</td>
<td>1.1</td>
<td>1.2</td>
</tr>
<tr>
<td>1.3</td>
<td>1.4</td>
</tr>
<tr>
<td rowspan="2">2</td>
<td>2.1</td>
<td>2.2</td>
</tr>
<tr>
<td>2.3</td>
<td>2.4</td>
</tr>
</tbody>
</table>
<pre id="res"></pre>
JavaScript
var jsonTable = {};
// add a new array property named: "columns"
$('table').find('thead tr').each(function() {
jsonTable.columns = $(this).find('th').text();
});
// now add a new array property which contains your rows: "rows"
$('table').find('tbody tr').each(function() {
var row = {};
var col;
// add data by colum names derived from "tbody"
for(var i = 0; i < jsonTable.columns.length; i++) {
col = jsonTable.columns[i];
row[ col ] = $(this).find('td').eq( i ).text();
}
// push it all to the results..
jsonTable.push( row );
});
var json = JSON.stringify(jsonTable);
alert(json);
var res = document.getElementById("res");
res.innerHTML = json;