Sort jQuery elements
Trying to figure out a more scalable solution to sorting DOM elements using jQuery
HTML
<!--<div id="original">
<div timestamp="8">8</div>
<div timestamp="9999">100</div>
<div timestamp="12">12</div>
<div timestamp="11">11</div>
<div timestamp="10">10</div>
<div timestamp="9">9</div>
<div timestamp="7">7</div>
<div timestamp="6">6</div>
<div timestamp="5">5</div>
<div timestamp="4">4</div>
<div timestamp="3">3</div>
<div timestamp="2">2</div>
<div timestamp="999">999</div>
<div timestamp="1">1</div>
<div timestamp="9999">9999</div>
</div> -->
<table>
<tr class="box">
<td id="305" align="center">1</td>
<td nowrap="">2018-06-18 09:51:08</td>
<td id="306"></td>
<td id="307"> </td><td> </td><td>Yes</td><td> </td><td> </td><td>Not Applicable</td><td>Not Applicable</td><td> </td><td>0</td><td>0</td><td> </td><td>0</td><td>0</td><td> </td><td></td>
</tr>
<tr class="box">
<td id="305" align="center">3</td>
<td nowrap="">2018-06-18 12:27:21</td>
<td id="306">Geo work site segambut dalam</td>
<td id="307">L3764800726</td><td>Follow up by iman</td><td>Yes</td><td>Chg drum (k)</td><td>Drum - 1</td><td>Not Applicable</td><td>RICOH MPC3000 PS</td><td>-</td><td>133357</td><td>153041</td><td>Alam</td><td>1200</td><td>1230</td><td>Mr patrick</td><td></td>
</tr>
<tr class="box">
<td id="305" align="center">2</td>
<td nowrap="">2018-06-18 12:33:58</td>
<td id="306">Dynamic marine</td>
<td id="307">M0973901478</td><td>Sc545</td><td>Yes</td><td>Service heater unit</td><td>-</td><td>Not Applicable</td><td>Not Applicable</td><td>MP2510 PS</td><td>97182</td><td>0</td><td>Ah Seah</td><td>1200</td><td>1300</td><td>John</td><td></td>
</tr>
</table>
<h1>Results</h1>
<div id="results"></div>
<h1>jQuery calls <span id="calls"><span/></span></h1>
JavaScript
// get array of elements
var myArray = $(".box");
var count = 0;
// sort based on timestamp attribute
myArray.sort(function (a, b) {
// convert to integers from strings
a = $(a).find("#307").text();
b = $(b).find("#307").text();
count += 2;
// compare
if(a > b) {
return 1;
} else if(a < b) {
return -1;
} else {
return 0;
}
});
// put sorted results back on page
$("table").append(myArray);
$("#calls").append(count+1);