具有混合数据的列的jQuery Datatable排序



我正在使用jQuery Datatables实现排序。在第二列中,我们有混合数据类型(text/string,带货币符号的金额(。第二列排序不正确,尽管数字排序,但带有text/string的单元格不会更改位置。当第二列的排序处于活动状态时,我希望将文本移到最后。简单地说,排序时,具有编号的单元格的层次结构/优先级应该更高。

表和排序可以在下面点击";运行代码段">

谢谢!

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.1/jquery.min.js" integrity="sha512-aVKKRRi/Q/YV+4mjoKBsE4x3H+BkegoM/em46NNlCqNTmUYADjBbeNefNxYV7giUp0VxICtqdrbqU7iVaeZNXA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.12.1/css/jquery.dataTables.min.css">
<script type="text/javascript" charset="utf8" src="https://cdn.datatables.net/1.12.1/js/jquery.dataTables.min.js"></script>
<script>jQuery(document).ready( function () {jQuery("#postsummary").DataTable({paging: false, "searching": false, columnDefs: [ { type: "num-fmt", targets : 1 } ], });} );</script>
<table
id="postsummary"
class="dataTable no-footer"
aria-describedby="postsummary_info"
>
<thead>
<tr>
<th
class="sorting"
tabindex="0"
aria-controls="postsummary"
rowspan="1"
colspan="1"
aria-label="Name of Program: activate to sort column ascending"
style="width: 573.075px"
>
Name of Program
</th>
<th
class="sorting sorting_asc"
tabindex="0"
aria-controls="postsummary"
rowspan="1"
colspan="1"
aria-label="Amount: activate to sort column descending"
style="width: 95.9125px"
aria-sort="ascending"
>
Amount
</th>
<th
class="sorting"
tabindex="0"
aria-controls="postsummary"
rowspan="1"
colspan="1"
aria-label="Type: activate to sort column ascending"
style="width: 100.863px"
>
Type
</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td class="">
Testing 1
</td>
<td class="sorting_1">varying</td>
<td class="">Compensation</td>
</tr>
<tr class="even">
<td class="">
Testing 2
</td>
<td class="sorting_1">$50,000</td>
<td class="">Grant</td>
</tr>
<tr class="odd">
<td class="">
Testing 3
</td>
<td class="sorting_1">$500,000</td>
<td class="">Grant</td>
</tr>
<tr class="even">
<td class="">
Testing 4
</td>
<td class="sorting_1">varying</td>
<td class="">Grant</td>
</tr>
<tr class="odd">
<td class="">
Testing 5
</td>
<td class="sorting_1">varying</td>
<td class="">Grant</td>
</tr>
<tr class="even">
<td class="">
Testing 6
</td>
<td class="sorting_1">$3,500</td>
<td class="">Grant</td>
</tr>
</tbody>
</table>

不能强制非数字数据为数字:-(。

如果你想排序,你可能想给自己写一个自定义的排序算法:

https://www.datatables.net/plug-ins/sorting/

最新更新