jQuery TableSorter没有正确排序,我不知道如何

时间:2012-10-26 22:29:15

标签: jquery tablesorter

我有七列,我想让它们正确排序,

第一列有数字,但它没有按照我希望的方式对它们进行排序:

Example:
5016
502
5020
5023

我希望它像这样排序:

Example:
502
5016
5020
5023

现在第二列有数字和字母的组合 示例如上所述,但在每个数字前面都有一个字母 我想按数字排序,然后按字母排序

Example:
441
B441
821
822
823
C823

或者甚至喜欢这样就可以了

Example:
441
821
822
823
B441
C823

最后, 第3列更复杂,它在单词示例之前有一个图像: 比利琼斯 安娜沃尔特斯 鲍勃史密斯 汤姆亨德森

我希望它按(姓名)字母排序......

Example:
<img src="img_tr122.png">&nbsp;Anna Walters
<img src="img_tr122.png">&nbsp;Billy Jones
<img src="img_tr122.png">&nbsp;Bob Smith
<img src="img_tr122.png">&nbsp;Tom Henderson

这是我到目前为止在JavaScript中的内容,但我不知道如何让一切工作......

<script type="text/javascript">
$(document).ready(function() { 
$.tablesorter.defaults.widgets = ['zebra']; 
    $("table").tablesorter({ 
        // pass the headers argument and assing a object 
        headers: { 
            // assign the third column (we start counting zero) 
            2: { 
                // disable sort because I don't know how to sort it correctly.
                sorter: false 
            },
            6: { 
                // disable sort for this (last) column because it is a menu only.
                sorter: false 
            } 
        } 
    }); 
});
</script>

请帮助......

感谢!!!!

2 个答案:

答案 0 :(得分:2)

原始tablesorter(v2.0.5)不进行字母数字排序。但您可以使用我的fork of tablesorter使用以下代码对数据进行排序:

$('table').tablesorter({

    // Add a theme
    theme : 'blue',

    // extract text from the table
    textExtraction: {
        2: function(node) {
            // move swap first and last name
            return $.trim($(node).text() || '').replace(/(\w+)\s(\w+)/g,'$2 $1');
        }
    },

    // include zebra and any other widgets:
    widgets: ['zebra', 'columns']

});

我不确定你想如何排序最后一栏。 textExtraction选项包含用于按姓氏排序最后一列的代码。如果要按名字排序,则只需删除整个选项。

以下是该代码的a demo

答案 1 :(得分:0)

您可以使用具有所需功能的http://tablesorter.openwerk.de/,它具有语言环境支持,UI主题支持,支持德语日期格式和小数点。