gpt4 book ai didi

javascript - 如果我添加 "NA"或 "---"作为空日期值,jQuery 数据表时刻日期格式排序插件不起作用

转载 作者:行者123 更新时间:2023-11-30 19:51:42 26 4
gpt4 key购买 nike

我在我的应用程序中使用了 jQuery Datatable 和数据表的 momentjs 日期格式插件进行日期排序。数据表排序是为客户端实现的(排序应该发生在 DOM 中,而不是根据对服务器的请求和加载数据)。因此,如果我将空字符串设置为日期列中数据表 td 元素之一的值,那么它工作正常,但是当我将该值设置为“NA”或“---”时' 而不是空值,则排序无法正常工作。

Check code on jsfiddle 

https://jsfiddle.net/ranjit_redekar/b0p3qLtg/16/

当我使用任何字符串(例如“---”)时不工作

Not working example

当我使用空字符串时排序有效 Working Example

最佳答案

当只有有效日期时,基于日期的排序工作正常。如果列中某处只有一个字符串,DataTable 会回退到“正常”排序方法:作为字符串。

要解决此问题,您将使用隐藏列来对可见列进行排序。

我将 this answer 中的代码改编为您的代码:

$(document).ready(function() {
$.fn.dataTable.moment('DD/MM/YY');

$('.happyTable').DataTable({
columnDefs: [
{ targets: 1, orderData: 2 }, // It says that column 1 will be ordered based on column 2
{ targets: 2, visible: false } // It says column 2 is hidden
]
});
});
<link href="https://cdn.datatables.net/1.10.18/css/jquery.dataTables.min.css" rel="stylesheet"/>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.8.4/moment.min.js"></script>
<script src="https://cdn.datatables.net/1.10.18/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/plug-ins/1.10.19/sorting/datetime-moment.js"></script>

<table class="happyTable" cellpadding="1" cellspacing="1">
<thead>
<tr>
<th>Name</th>
<th>Date</th>
<th>Hidden column</th><!-- Add a column here -->
<th>ZIP</th>
<th>Other</th>
</tr>
</thead>
<tbody>
<tr>
<td>Merritt Molina</td>
<td>26/12/15</td>
<td>26/12/15</td><!-- When you have a valid date, use it -->
<td>99266</td>
<td>72341402999</td>
</tr>
<tr>
<td>Lamar Ryan</td>
<td>24/09/16</td>
<td>24/09/16</td>
<td>91870</td>
<td>04890349099</td>
</tr>
<tr>
<td>Theodore Thornton</td>
<td>14/10/16</td>
<td>14/10/16</td>
<td>76266</td>
<td>22437000299</td>
</tr>
<tr>
<td>Boris Harrell</td>
<td>19/11/16</td>
<td>19/11/16</td>
<td>82000</td>
<td>55735640699</td>
</tr>
<tr>
<td>Oren Conner</td>
<td>08/09/16</td>
<td>08/09/16</td>
<td>56717</td>
<td>18666997199</td>
</tr>
<tr>
<td>Alfonso Dawson</td>
<td>---</td> <!-- visible, use any character you want -->
<td></td> <!-- hidden, used to order. Leave empty -->
<td>28491</td>
<td>58270268699</td>
</tr>
<tr>
<td>Cole Perez</td>
<td>24/08/15</td>
<td>24/08/15</td>
<td>54977</td>
<td>26553861699</td>
</tr>
<tr>
<td>George Bauer</td>
<td>10/12/15</td>
<td>10/12/15</td>
<td>26482</td>
<td>54456979799</td>
</tr>
<tr>
<td>Wing Summers</td>
<td>10/02/16</td>
<td>10/02/16</td>
<td>83752</td>
<td>29425569399</td>
</tr>
<tr>
<td>Bert Golden</td>
<td>24/09/15</td>
<td>24/09/15</td>
<td>23673</td>
<td>66513793199</td>
</tr>
</tbody>
</table>

关于javascript - 如果我添加 "NA"或 "---"作为空日期值,jQuery 数据表时刻日期格式排序插件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54403552/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com