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 に答える