使用jquery和tablesorter只对一列进行排序

时间:2011-10-21 12:43:58

标签: javascript jquery tablesorter

目前我正在使用jquery tablesorter和tablesorter过滤器。我的问题是,我希望我的过滤器只过滤一列。现在它过滤所有列。您可以在此处查看我的网站:http://tinyurl.com/3j38vye

现在它过滤所有列,我只想过滤“Lainasumma”列。你能说出为什么它的排序量不合适吗?

3 个答案:

答案 0 :(得分:8)

你看过documentation了吗? Here is an example如何禁用某些使用tablesorter的列。您可以传递headers对象,您可以在其中指定禁用哪些列。

另一种方法是将class="{sorter: false}"添加到要禁用排序的单元格。

修改

您可以使用$.tablesorter.addParser()方法定义自定义排序(请参阅上面的jsFiddle示例)。

代码

$(document).ready(function() {
    $.tablesorter.addParser({
        id: 'custom_sort_function',
        is: function(s) {
            return false;
        },
        format: function(s) {
            // the € symbol causes the tablesorter to treat the value as a string
            // remove it and let the tablesorter treat it as numeric
            // use /\u20AC/ instead of /€/ if regex does not work as expected
            return s.replace(/€/, '');
        },
        type: 'numeric'
    });
    $("#pikavipit").tablesorter({
        headers: {
            0: {
                sorter: false
            },
            1: {
                sorter: false
            },
            2: {
                sorter: 'custom_sort_function'
            },
            3: {
                sorter: false
            },
            4: {
                sorter: false
            },
            5: {
                sorter: false
            },
            6: {
                sorter: false
            },
            7: {
                sorter: false
            },
            8: {
                sorter: false
            }
        }
    });
});

答案 1 :(得分:6)

最简单的解决方案是修改javascript文件中的selectorHeaders并将其设置为其他类似的东西:

 selectorHeaders: 'thead th.sortable'

现在,你唯一要做的就是只给你想要排序的列,css类可以排序。

答案 2 :(得分:0)

我可以告诉你,它没有正确地对金额进行排序,因为排序不会将金额列视为数字,而是将它们视为文本,因此它会对文本进行排序。