Сортировка table tr на "чистом" JavaScript

Вариант для СКР

by Denis Tverdokhlebov

HTML

<table>
    <table id="block1">
        <tr class="test1">
            <td><b>Пётр</b></td>
        </tr>
        <tr class="negative1">
            <td><b>Вася</b></td>
        </tr>
        <tr class="pozitive1">
            <td><b>Аня</b></td>
        </tr>
        <tr class="pozitive1">
            <td><b>Вова</b></td>
        </tr>
        <tr class="negative1">
            <td><b>Боря</b></td>
        </tr>
    </table>

    <div id="demo">
        <table id="block">
            <tr class="test">
                <td><b>Пётр</b></td>
            </tr>
            <tr class="negative">
                <td><b>Вася</b></td>
            </tr>
            <tr class="pozitive">
                <td><b>Аня</b></td>
            </tr>
            <tr class="pozitive">
                <td><b>Вова</b></td>
            </tr>
            <tr class="negative">
                <td><b>Боря</b></td>
            </tr>
        </table>
    </div>
</table>

CSS

.pozitive{
     background-color: #008000;
   }
   .negative{
     background-color: #FF0000;
   }
   .test{
     background-color: #D2691E;
   }
   a{
     color: #FFFF00;
   }

JavaScript

var c = document.querySelector("#block");
Array.apply(null,document.querySelectorAll("#demo tr"))
.sort(function(a, b) {
    a = a.classList;
    a = a.contains('pozitive') ? -1 : a.contains('negative') ? 0 : 1;
    b = b.classList;
    b = b.contains('pozitive') ? -1 : b.contains('negative') ? 0 : 1;
    return a < b ? -1 : a > b ? 1 : 0
})
.forEach(function(a) {
    c.appendChild(a)
});