如何按数据表中的隐藏列排序?

Ale*_*lex 0 javascript jquery datatables

当我将 DataTables 应用于以下内容时:

<td class="years"><?php $years."-years" ?></td>
<td class="..." ...
... other <td> ...
Run Code Online (Sandbox Code Playgroud)

我的表显示如下:

10-years ... ... ...
10-years ... ... ...
5-years  ... ... ...
7-years  ... ... ...
9-years  ... ... ...
Run Code Online (Sandbox Code Playgroud)

因为按字母顺序排列。我需要10-years出现在底部。要做到这一点,我添加<td class="hidden"><?php $years ?></td>右后<td class="years"><?php $years."-years" ?></td>并添加"order": [ 1, 'asc' ]到DataTable的初始化:

$(".table-rates").DataTable( {
   "order": [ 1, 'asc' ]
});
Run Code Online (Sandbox Code Playgroud)

之后它停止工作并开始在控制台中报告错误:“无法读取未定义的属性'mData'”。

有人可以解释我如何按数据表中的隐藏列排序吗?我在网上查了一下,但解决方案对我不起作用。更糟糕的是,语法极其混乱且难以遵循。任何帮助,将不胜感激。谢谢!

CMe*_*ina 6

不需要添加其他列,您可以使用数据表的数据属性,在您的html代码中添加data-order

<td class="years" data-order="<?php $years ?>"><?php $years."-years" ?></td>
Run Code Online (Sandbox Code Playgroud)

而你的代码JS:

$(document).ready(function() {
    $('#example').DataTable({
        "order": [ 0, 'asc' ]
    });
});
Run Code Online (Sandbox Code Playgroud)

结果: https : //jsfiddle.net/cmedina/7kfmyw6x/69/