0

これは簡単なはずです...

<table>
    <tr><td>Name</td><td>Number</td></tr>
    <tr><td>Joe Bloggs</td><td>10</td></tr>
    <tr><td>Joe Adams</td><td>12</td></tr>
</table>

を使用しjquery.tablesorterて、名前の列をクリックすると、デフォルトの名前ではなく、最初の列の名前の部分で並べ替えます。

私はそれが最初にPHPから逆にすることによって行うことができることを知っているのでAdams, Joe; しかし、それはひどく見え、不格好に見えます。

これはカスタムソートで実行できますか?

4

1 に答える 1

0

最初に、Rory と Sargiv による 2 つのコメントの提案に耳を傾ける必要があります。これは紛らわしい動作を作成するためですが、それでもそれを主張する場合は、次のようなカスタム パーサーを追加できます。

$.tablesorter.addParser({
        // set a unique id
        id: 'surname',
        is: function(s) {
            // return false so this parser is not auto detected
            return false;
        },
        format: function(s) {

            var parts = s.split(" ");
           // alert(parts[1]);
            // return surname here
            return parts[1];
        },
        // set type, either numeric or text
        type: 'text'
    });

次に、これを名前列のパーサーとして追加します

$('table').tablesorter({
    // include zeba widgets
    widgets: ['zebra'],
    headers: {
                0: {
                    sorter:'surname'
                }
            }

});

ここに作業フィドルがありますhttp://jsfiddle.net/joycse06/2TZAn/1/、名前の見出しをクリックして確認し、他のフィールドを無視します。既存のフィドルを編集したため、そこにあります。

カスタムパーサーのプラグインページは次のとおりですhttp://tablesorter.com/docs/example-parsers.html

于 2012-05-17T09:01:36.570 に答える