tablesorter对列在其中的列进行排序

时间:2015-04-08 15:29:57

标签: ruby-on-rails tablesorter

我有一个表格,其中一列是日期时间:例如:2011年1月11日下午12:34

不幸的是,列的宽度不允许我在一行中以全长显示日期时间,因此我将内容显示为两行,如

   1/11/2011
   12:34 PM

但如果列内容中包含<br>,则tablesorter将无效。知道如何通过tablesorter为这个问题实现排序吗?我正在使用tablesorter修订版2.0.5b。我无法升级到更新的版本,因为它可能会破坏rails应用程序的现有功能。

tablesorter是jquery插件

1 个答案:

答案 0 :(得分:1)

您可能需要一个自定义解析器来删除回车符;老实说,如果允许文本换行,我认为不需要添加<br>,并为该列设置宽度。

无论如何,请尝试使用此代码(demo

$(function () {

    $.tablesorter.addParser({
        // set a unique id
        id: 'date',
        is: function (s, table, cell) {
            // return false so this parser is not auto detected
            return false;
        },
        format: function (s, table, cell, cellIndex) {
            // replace extra spacing/carriage returns
            var str = s.replace(/\s+/g," "),
                date = new Date( str );
            return date instanceof Date && isFinite(date) ? date.getTime() : s;
        },
        // set type, either numeric or text
        type: 'numeric'
    });

    $('table').tablesorter({
        theme: 'blue',
        headers: {
            7: { sorter: 'date' }
        }
    });
});