Показать сообщение отдельно
  #2 (permalink)  
Старый 03.03.2015, 16:44
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

vkhacker,
1 строка я так понял в сортировке не учавствует , в данном варианте с небольшим дополнением можно все классы для сортировки задать одновременно.
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
body{font-size: 20pt;}
table{
    margin:0;
    padding:0;
    border:1px solid #888;
}
td.nd{
    color:#0f0;
}
td.nd2{
    color:#f00;
}
  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
$(function() {
    jQuery.fn.tdData = function(td_class) {
        return this.each(function() {
            var cls = this.className.split(/\s+/),
                sum = 0;
            for (var i = 0; i < cls.length; i++) sum += cls[i] == td_class ? 1 : 0;
            $(this).data({
                "cls": sum
            })
        })
    };

    function DownCell(table, td_class) {
        var row = table.find("tr:gt(0)");
        var colcount = row[0].cells.length;
        $("td", row).tdData(td_class);
        for (var col = 0; col < colcount; col++) {
            var cell = row.find("td:nth-child(1)");
            var arr = $.makeArray(cell);
            arr.sort(function(a, b) {
                return $(a).data("cls") - $(b).data("cls")
            });
            row.each(function(indx, element) {
                this.appendChild(arr[indx])
            })
        }
        return false
    }
    setTimeout(function() {
        DownCell($("table.tbl"), "nd");
        DownCell($("table.tbl"), "nd2")
    }, 2E3)
});
  </script>
</head>

<body>
<table class="tbl" cellspacing="0" cellpadding="0" border="1">
    <tr>
        <th>1</th>
        <th>2</th>
        <th>3</th>
        <th>4</th>
        <th>5</th>
        <th>6</th>
        <th>7</th>
    </tr>
    <tr>
        <td>11</td>
        <td>12</td>
        <td class="nd2">13</td>
        <td>14</td>
        <td>15</td>
        <td>16</td>
        <td class="nd2">17</td>
    </tr>
    <tr>
        <td class="nd2">21</td>
        <td class="nd">22</td>
        <td>23</td>
        <td class="nd">24</td>
        <td>25</td>
        <td class="nd2">26</td>
        <td>27</td>
    </tr>
    <tr>
        <td>31</td>
        <td class="nd2">32</td>
        <td class="nd">33</td>
        <td>34</td>
        <td>35</td>
        <td class="nd2">36</td>
        <td>37</td>
    </tr>
</table>
</body>

</html>
Ответить с цитированием