带有multirow标头的可排序HTML表

时间:2014-06-22 16:00:59

标签: javascript html sorting

有几个JS脚本可以对HTML表格列进行排序,例如这一列:http://www.kryogenix.org/code/browser/sorttable/

但是如果您的(固定标题行)是1行,它们似乎都可以工作。我有3行,顶部有类别,故障子类别下降,排序如下:

---------------------------------------------------------------------------------
| Category 1                               | Category 2                         |
| Sub cat 1 | Sub cat 2 | Sub cat 3        | Sub cat 4 | Sub cat 5              |
| data      | data      | data             | data      | data                   |

所以我的问题是,是否有一个脚本可以根据最底部的thead行对HTML表行进行排序。

因此,在示例中,我想基于子猫对数据进行排序。

3 个答案:

答案 0 :(得分:1)

您可能想要结帐DataTables。它提供高级表操作,包括排序。它支持本机最底部的thead行排序,请参阅this example

答案 1 :(得分:1)

要赞叹ajay的回答(声誉不足,无法直接投票)。它为我工作。 为了更清楚地了解他/她的回答,以防行号发生变化...

在第53行要注释掉:

select (case when grouping(product) = 0 then product
             when grouping(customer) = 0 then customer
             else 'Total'
        end) as the_key

这是第78行

if (table.tHead.rows.length != 1) return; // can't cope with two header rows

要替换为

headrow = table.tHead.rows[0].cells;

答案 2 :(得分:0)

我使用https://kryogenix.org/code/browser/sorttable/遇到了同样的情况,并且能够很容易地修改sorttable.js来修复它。所做的更改:

  1. 第53行:将这一行注释掉。
  2. 第78行:用以下两行替换第78行:
    rowsinheader = table.tHead.rows.length;
    headrow = table.tHead.rows[rowsinheader-1].cells;   //sort on the last row in header