Timezone Table to JSON
by laucheukhim
HTML
<table id="a" width="100%" cellspacing="0" cellpadding="0" class="times">
<tbody><tr>
<td width="10%" valign="top" align="left" class="chart1">Code</td>
<td width="80%" valign="top" align="left" class="chart1">Definition</td>
<td width="10%" valign="top" align="left" class="chart2">GMT</td>
</tr>
<tr>
<td valign="top" align="left" class="chart1"><a name="ACDT" id="ACDT"></a>ACDT</td>
<td valign="top" align="left" class="chart1">Australian Central Daylight Time</td>
<td valign="top" align="left" class="chart2">+10:30</td>
</tr>
<tr>
<td valign="top" align="left" class="chart1"><a name="ACIT" id="ACIT"></a>ACIT</td>
<td valign="top" align="left" class="chart1">Ashmore and Cartier Islands Time</td>
<td valign="top" align="left" class="chart2">+8:00</td>
</tr>
<tr>
<td valign="top" align="left" class="chart1"><a name="ACST" id="ACST"></a>ACST</td>
<td valign="top" align="left" class="chart1">Australian Central Standard Time</td>
<td valign="top" align="left" class="chart2">+9:30</td>
</tr>
<tr>
<td valign="top" align="left" class="chart1"><a name="ACT" id="ACT"></a>ACT</td>
<td valign="top" align="left" class="chart1">Acre Time</td>
<td valign="top" align="left" class="chart2">-5</td>
</tr>
<tr>
<td valign="top" align="left" class="chart1"><a name="ACWST" id="ACWST"></a>ACWST</td>
<td valign="top" align="left" class="chart1">Australian Central Western Standard Time</td>
<td valign="top" align="left" class="chart2">+8:45</td>
</tr>
<tr>
<td valign="top" align="left" class="chart1"><a name="ADT" id="ADT"></a>ADT</td>
<td valign="top" align="left" class="chart1">Arabia Daylight Time</td>
<td...
JavaScript
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.replace(/(<([^>]+)>)/ig,"");
}
data.push(rowData);
}
return data;
}
console.log(JSON.stringify(tableToJson(document.getElementById("a"))));