Tablesorter日期dd.mm.yyyy

时间:2013-08-04 16:49:51

标签: jquery date tablesorter

我有以下表格:

<table class='tablesorter'>
<thead>
<tr style='font-weight:bold;'><td></td><th>Date</th><th>Name</th><th>Town</th></tr>
</thead>
<tbody>
<tr><td>04.08.2013</td><td>Martin</td><td>Chicago</td></tr>
<tr><td>04.08.2013</td><td>Justin</td><td>Washington</td></tr>
<tr><td>04.08.2013</td><td>Paul</td><td>Berlin</td></tr>
<tr><td>04.08.2013</td><td>Penny</td><td>Prague</td></tr>
</tbody>
</table>

我使用以下Tablesorter设置:

<script type="text/javascript" id="js">
 $(document).ready(function() {     
    $("table").tablesorter({
        sortList: [[1,1]]
         headers: { 
                    1: {sorter:"dd.mm.yyyy"}        
              }         
    });
    $.tablesorter.addParser({
        id: "dd.mm.yyyy",
        is: function(s) {
            return false;
        },
        format: function(s) {
            s = "" + s;
            var hit = s.match(/(\d{1,2})\.(\d{1,2})\.(\d{4})/);
            if (hit && hit.length == 4) {
                return hit[3] + hit[2] + hit[1];
            }
            else {
                return s;
            }
        },
        type: "text"
    }); 
});
</script>

按日期格式dd.mm.yyyy对列进行排序很方便,但我还需要'排序箭头'以进行自定义用户排序,如here

有什么想法吗?

由于

P.S。:对不起我的英文:)

1 个答案:

答案 0 :(得分:3)

尝试将$.tablesorter.addParser函数放在文档就绪函数之外(在初始化表之前):

<script>
$.tablesorter.addParser({
    id: "dd.mm.yyyy",
    is: function(s) {
        return false;
    },
    format: function(s) {
        s = "" + s;
        var hit = s.match(/(\d{1,2})\.(\d{1,2})\.(\d{4})/);
        if (hit && hit.length == 4) {
            return hit[3] + hit[2] + hit[1];
        } else {
            return s;
        }
    },
    type: "text"
}); 
$(function() {     
    $("table").tablesorter({
        sortList: [[1,1]], // add the missing comma here!
        headers: { 
            1: {sorter:"dd.mm.yyyy"}        
        }         
    });
});
</script>