【问题标题】:How can i sort dataTable based on tag value如何根据标签值对数据表进行排序
【发布时间】:2018-06-02 13:34:31
【问题描述】:

我想根据aria- 标签对我的dataTable 进行排序。

这就是我正在尝试的

  1. [for all first td] 所有 aria-class="folder"升序排在第一位,然后是 aria-class="file"

    李>
  2. [for all 2nd td]所有值按降序

这是我的数据表

$('#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>

请帮助我提前谢谢!!!

【问题讨论】:

标签: javascript jquery html node.js


【解决方案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>

【讨论】:

  • 是的,它工作得很好,但是在点击 ascendingdescending icon 时,它会将filefolder 混合在一起。我们不能单独保存它们并sort它们吗?
  • 当您点击图标时,它将仅基于数据顺序进行升序、降序
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多