如何根据标签值对dataTable进行排序

时间:2018-06-02 04:17:52

标签: javascript jquery html node.js

我想根据dataTable 标记aria-进行排序。

这是我正在尝试的

  1. [适用于所有td} 所有aria-class="folder"首先按升序列出,然后aria-class="file"

  2. [适用于所有第二次td] 所有要按降序排序

  3. 的值

    这是我的 dataTable

    
    
    $('#dttest').DataTable();
    
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <link href="https://cdn.datatables.net/1.10.12/css/jquery.dataTables.css" rel="stylesheet"/>
    <script src="https://cdn.datatables.net/1.10.12/js/jquery.dataTables.js"></script>
    <h1>Example of broken datatables date sorting</h1>
    <table id="dttest">
        <thead>
            <tr>
                <th>Name</th>
                <th>DoB</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td aria-name="Alice" aria-class="folder">
                    Alice
                </td>
                <td aria-value="200">200</td>
            </tr>
            <tr>
                <td aria-name="AAram" aria-class="file">
                    AAram
                </td>
                <td aria-value="900">900</td>
            </tr>
            <tr>
                <td aria-name="Charlie" aria-class="file">Charlie</td>
                <td aria-value="1200">1200</td>
            </tr>
            <tr>
                <td aria-name="charlee" aria-class="folder">charlee</td>
                <td aria-value="100">100</td>
            </tr>
            <tr>
                <td aria-name="kevin" aria-class="file">kevin</td>
                <td aria-value="2000">2000</td>
            </tr>
            <tr>
                <td aria-name="abraham" aria-class="folder">abraham</td>
                <td aria-value="3000000">3000000</td>
            </tr>
            <tr>
                <td aria-name="martin" aria-class="file">martin</td>
                <td aria-value="5.9">5.9</td>
            </tr>
        </tbody>
    </table>
    &#13;
    &#13;
    &#13;

    请提前帮助我!

1 个答案:

答案 0 :(得分:1)

最简单的解决方案是使用data-order,您一次只能对一个字段进行排序

演示:https://codepen.io/creativedev/pen/LrpeOj

<script 

src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://cdn.datatables.net/1.10.12/css/jquery.dataTables.css" rel="stylesheet"/>
<script src="https://cdn.datatables.net/1.10.12/js/jquery.dataTables.js"></script>
<h1>Example of broken datatables date sorting</h1>
<table id="dttest">
    <thead>
        <tr>
            <th>Name</th>
            <th>DoB</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td aria-name="Alice" data-order="folder">
                Alice
            </td>
            <td aria-value="200">200</td>
        </tr>
        <tr>
            <td aria-name="AAram" data-order="file">
                AAram
            </td>
            <td aria-value="900">900</td>
        </tr>
        <tr>
            <td aria-name="Charlie" data-order="file">Charlie</td>
            <td aria-value="1200">1200</td>
        </tr>
        <tr>
            <td aria-name="charlee" data-order="folder">charlee</td>
            <td aria-value="100">100</td>
        </tr>
        <tr>
            <td aria-name="kevin" data-order="file">kevin</td>
            <td aria-value="2000">2000</td>
        </tr>
        <tr>
            <td aria-name="abraham" data-order="folder">abraham</td>
            <td aria-value="3000000">3000000</td>
        </tr>
        <tr>
            <td aria-name="martin" data-order="file">martin</td>
            <td aria-value="5.9">5.9</td>
        </tr>
    </tbody>
</table>

JS

<script>
$('#dttest').dataTable({
    "aaSorting": [[ 0, "desc" ]],
});
 </script>