JSFiddle - React, Tailwind, and code Playground

by Abruzzi Hraig

HTML

<table>
<thead>
<tr height=50>
<th>SL.NO</th>
<th>Database Name</th>
<th>Table Name</th>
<th>Table Size in MB</th>
<th>Table Size in GB</th>
<th>Unused space in MB</th>
<th>Engine Type</th>
<th>Row Count</th>
<th>Time</th>
</tr></thead>
<tbody>
<tr height=30><td ALIGN='CENTER' VALIGN='MIDDLE'>1</td><td ALIGN='CENTER' VALIGN='MIDDLE'>HolidayIndia</td><td ALIGN='CENTER' VALIGN='MIDDLE'>Attractions</td><td ALIGN='CENTER' VALIGN='MIDDLE'>0.42</td><td ALIGN='CENTER' VALIGN='MIDDLE'>0.00041015625</td><td ALIGN='CENTER' VALIGN='MIDDLE'>0</td><td ALIGN='CENTER' VALIGN='MIDDLE'>InnoDB</td><td ALIGN='CENTER' VALIGN='MIDDLE'>726</td><td ALIGN='CENTER' VALIGN='MIDDLE'>2014-10-26 23:11:15</td></tr><tr height=30><td ALIGN='CENTER' VALIGN='MIDDLE'>2</td><td ALIGN='CENTER' VALIGN='MIDDLE'>HolidayIndia</td><td ALIGN='CENTER' VALIGN='MIDDLE'>AttractionsType</td><td ALIGN='CENTER' VALIGN='MIDDLE'>0.02</td><td ALIGN='CENTER' VALIGN='MIDDLE'>1.953125e-05</td><td ALIGN='CENTER' VALIGN='MIDDLE'>0</td><td ALIGN='CENTER' VALIGN='MIDDLE'>InnoDB</td><td ALIGN='CENTER' VALIGN='MIDDLE'>11</td><td ALIGN='CENTER' VALIGN='MIDDLE'>2014-10-26 23:11:15</td></tr><tr height=30><td ALIGN='CENTER' VALIGN='MIDDLE'>3</td><td ALIGN='CENTER' VALIGN='MIDDLE'>HolidayIndia</td><td ALIGN='CENTER' VALIGN='MIDDLE'>AttractionsType_lang</td><td ALIGN='CENTER' VALIGN='MIDDLE'>0.02</td><td ALIGN='CENTER' VALIGN='MIDDLE'>1.953125e-05</td><td ALIGN='CENTER' VALIGN='MIDDLE'>0</td><td ALIGN='CENTER' VALIGN='MIDDLE'>InnoDB</td><td ALIGN='CENTER' VALIGN='MIDDLE'>43</td><td ALIGN='CENTER' VALIGN='MIDDLE'>2014-10-26 23:11:15</td></tr><tr height=30><td ALIGN='CENTER' VALIGN='MIDDLE'>4</td><td ALIGN='CENTER' VALIGN='MIDDLE'>HolidayIndia</td><td ALIGN='CENTER' VALIGN='MIDDLE'>Attractions_lang</td><td ALIGN='CENTER' VALIGN='MIDDLE'>1.52</td><td ALIGN='CENTER' VALIGN='MIDDLE'>0.001484375</td><td ALIGN='CENTER' VALIGN='MIDDLE'>4</td><td ALIGN='CENTER' VALIGN='MIDDLE'>InnoDB</td><td ALIGN='CENTER' VALIGN='MIDDLE'>2359</td><td...

CSS

table {width: 100%;font: 12px arial;}
th, td {min-width: 40px;text-align: center;}
th {font-weight: bold;cursor:pointer;}

JavaScript

function sortTable(table, col, reverse) {
    var tb = table.tBodies[0], // use `<tbody>` to ignore `<thead>` and `<tfoot>` rows
        tr = Array.prototype.slice.call(tb.rows, 0), // put rows into array
        i;
    reverse = -((+reverse) || -1);
    tr = tr.sort(function (a, b) { // sort rows
        return reverse // `-1 *` if want opposite order
            * (a.cells[col].textContent.trim() // using `.textContent.trim()` for test
                .localeCompare(b.cells[col].textContent.trim())
               );
    });
    for(i = 0; i < tr.length; ++i) tb.appendChild(tr[i]); // append each row in order
}

function makeSortable(table) {
    var th = table.tHead, i;
    th && (th = th.rows[0]) && (th = th.cells);
    if (th) i = th.length;
    else return; // if no `<thead>` then do nothing
    while (--i >= 0) (function (i) {
        var dir = 1;
        th[i].addEventListener('click', function () {sortTable(table, i, (dir = 1 - dir))});
    }(i));
}

function makeAllSortable(parent) {
    parent = parent || document.body;
    var t = parent.getElementsByTagName('table'), i = t.length;
    while (--i >= 0) makeSortable(t[i]);
}

window.onload = function () {makeAllSortable();};