jquery - 使用 Jquery 数据表对数据排序属性中的值进行自定义排序

标签 jquery html sorting datatables custom-data-attribute

我必须使用 Jquery 数据表进行一些自定义排序。我不想为每个自定义排序编写自定义排序函数。

我想定义一个值来排序,如果定义了值,让数据表忽略原始列值。

例如:

<td data-sort="111123">E 1.111,23</td>

我希望 Jquery Datatables 在 111123 上对这一列进行数字排序.

<td data-sort="19801220">20-12-1980</td>

我希望 Jquery Datatables 在 19801220 上对这一列进行数字排序.

<td>a string</td>

我希望 Jquery Datatables 按其原始值 a string 对该列进行排序.

http://www.datatables.net/plug-ins/sorting具有接近我想要的“隐藏标题数字排序”,但需要我为每个数据表指定此自定义排序适用的列。我有太多不同大小的数据表,无法在合理的时间内完成这项工作。我只想让 Datatables 始终对这个隐藏值/data-* 属性(如果存在)进行排序。无需对特定列进行自定义排序定义。

相关:jQuery DataTables: how to sort by custom parameter value rather than the content of the cell?但不幸的是,没有关于如何简单地通过自定义参数进行排序的答案,而是指向自定义排序脚本的指针。

最佳答案

你可以使用data-order attr,例如

<table class="table table-bordered table-hover">
<thead>
    <tr>
        <th>Date</th>
        <th>Count</th>
    </tr>
</thead>
<tbody>
<?php
   $count = 0;
   foreach($users as $user) {?>
      <tr>
         <td data-order="<?php echo $count ?>">
            <?php echo $user['createdDate']; ?>
         </td>
         <td>
            <?php echo $user['count']; ?>
         </td>
         </tr>
   <?php
      $count++;
   }?>
   <tr>
      <td data-order="999999999999999999999999999"> <!--always last-->
          Total
      </td>
      <td>
         <?php echo count($users); ?>
      </td>
  </tr>

更多信息HTML5 data-* attributes

关于jquery - 使用 Jquery 数据表对数据排序属性中的值进行自定义排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20286162/

相关文章:

javascript - 如何在编辑按钮单击时查找 anchor 标记的文本?

asp.net - JQuery/ASP.Net - 如何跨回发维护隐藏 UI 元素的状态?

javascript - 访问 Stripe 支付元素的加载状态

java - 随机枢轴无法快速排序

mysql 多列顺序

javascript - 链接标记显示 block 未拉伸(stretch)全宽

javascript - 如何使用 JS/jQuery 正确提交动态创建的表单?

html - Webflow.com 是否生成可用代码?

html - IE 上的文本阴影不起作用

java - 排序比较计数器