jquery tablesorter如何忽略排序中的一行

时间:2014-09-24 06:57:54

标签: jquery tablesorter

我的表分拣机目前有点问题。问题是我正在整理我的时间,但当列包含n / a时,我希望它出现在排序的末尾。有人能帮我解决这个问题吗?

enter image description here

这是我的排序代码......

$("#myStoreStatus").tablesorter({
    sortList: [[2,1],[8,0],[0,0]],
    stripingRowClass: ['even','odd'],
    stripeRowsOnStartUp: true,
    widthFixed: false, 
    widgets: ['zebra'],
    dateFormat: "uk",
    headers: {
        0: { sorter: 'digit' } // column number, type
    }
});

2 个答案:

答案 0 :(得分:1)

据我所知,问题在于您希望n / a行始终显示在末尾,即使时间列的排序顺序已更改。

这是一个可能的选择。

$("#myStoreStatus").tablesorter({
    sortList: [[2,1],[8,0],[0,0]],
    stripingRowClass: ['even','odd'],
    stripeRowsOnStartUp: true,
    widthFixed: false, 
    widgets: ['zebra'],
    dateFormat: "uk",
    headers: {
        0: { sorter: 'digit' } // column number, type
    },

    textExtraction: function (node) {
        if (($(node).index()==8) && ($(node).text().toLowerCase()=='n/a'))
            $(node).parent().addClass('jsnamark');
        return $(node).text();
    }

}).bind('sortEnd' function () {
    $(this).append($(this).find('.jsnamark'));
});

现在,这种和平正在做的事情非常简单。它使用textExtraction函数来检查第8个(时间)单元格是否具有“n / a”值。如果是,则将jsnamark类添加到其行中。 (如果使用服务器脚本为页面提供服务,也可以使用jQuery以几种不同的方式执行相同的操作;如果使用服务器脚本提供页面,则可以从服务器端执行相同的操作。)

完成排序后,会将具有jsnamark类的行重新显示到表的末尾。

答案 1 :(得分:1)

您可能还想查看我的fork of tablesorter

有一个内置选项,您可以在其中设置字符串值(例如" N / A")在数字列中的排序方式 - 请参阅this demo

如果您使用的是原始的tablesorter,则可以使用textExtraction选项将N/A替换为空字符串;或者使用@Jadran的代码也可以使用。