Get TD data from Table as JSON

Iterates through HTML table and creates JSON string.from TD elements

by leisenstein

HTML

<table border="2px solid black">   
    <tr id="header-row">
            <th>Dx Code</th>
            <th>Dx Date</th>
            <th>OnSet Or Ex</th>
        </tr>
    <tr>
        <td>3022</td> 
        <td>1/1/2014</td>
        <td>ONSET</td>
   </tr>
   <tr>
        <td>V9099</td> 
        <td>1/21/2014</td>
        <td>EX</td>
   </tr>  
   <tr>
        <td>1199</td> 
        <td>1/31/2014</td>
        <td>ONSET</td>
   </tr>           
</table>

<br />
<input type="button" value = "Submit" id="out">

CSS

table {
	border-spacing: 10px;
	min-width: 80%;
}

td {
	width: 25%;
    
  }
th {
  text-align: center;
  font-weight: bold;
}

JavaScript

// object to hold your data
function dataRow(value1,value2,value3) {
    this.dxCode = value1;
    this.dxDate = value2;
    this.dxType = value3;
}

$('#out').click(function(){   
    
    // create array to hold your data
    var dataArray = new Array();
    
    // iterate through rows of table
    // * Start from '2' to skip the header row *
    for(var i = 2; i <= $("table tr").length; i++){
            // create object and push to array
            dataArray.push(    
                new dataRow(
                    $("table tr:nth-child(" + i + ") td").eq(0).html(),
                    $("table tr:nth-child(" + i + ") td").eq(1).html(),
                    $("table tr:nth-child(" + i + ") td").eq(2).html())
            );
    }
    
    var sJson = JSON.stringify(dataArray);
    alert(sJson);
})