0

我有下表:

<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 格式对日期进行排序的列,但我还需要“排序箭头”来进行自定义用户排序,例如这里

有任何想法吗?

谢谢

PS:对不起我的英语:)

4

1 回答 1

4

尝试将$.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>
于 2013-08-06T03:13:57.367 回答