0

私はそのようなhtmlテーブルを持っています:ここ:http://jsfiddle.net/zrjaM/1/

そしてソートのためのそのようなjs:

$(document).ready(function() { 
    $(".sortable") 
    .tablesorter({sortList: [[4,0]], widgets: ['zebra']});
}); 

しかし、私は0番目の列を介してソートする必要があります....私は次のように書きます:

$(document).ready(function() { 
        $(".sortable") 
        .tablesorter({sortList: [[0,0],[4,0]], widgets: ['zebra']});
    }); 

しかし、それは奇妙に動作します...

また、それを行う必要があります。価格値(4列目)のtrが一番上にありますが、価格だけで並べ替えると、すべて問題ありませんが、2つの列を使用すると、両方とも価格のtrを最後に持つことができます。または真ん中....それらを上に送信し、最初に0番目を介してソートし、次にソーターを介して4-t列を介して0番目にソートする方法....それを行う方法は?

4

2 に答える 2

2

@charlietflのソリューションはZZZZZZZ、空のセルに追加するコードがなくても機能します。ただし、そのデモでは元のバージョンのtablesorterを使用しているため、最初のtbodyを削除する必要があります。

ただし、複数のtbodiesを並べ替えることができるtablesorterのフォークを使用しているように見えるため、必要なのはオプションをに設定することだけです。emptyTonone

このemptyToオプションはbottomデフォルトでに設定されています。したがって、すべての空のセルは常に一番下にソートされます。3番目の列がまったく並べ替えられていないように見える理由は、その列のすべてのリンクに同じテキストがあるためです。これがデモです。

tablesorter-headerSortDown更新: 4番目の列からも削除します。これはまだcssにありますが、プラグインはtablesorter-headerDesc現在使用しています。

于 2013-02-04T16:34:23.497 に答える
1

私は可能な解決策を見つけました。

最初に行に価格がないかどうかを確認します。価格がない場合は、最初の列のアイテム名の前に非表示のスパンを追加しますZZZZZZZZZZZZZZこれにより、すべてのアイテムが強制的に下に移動し、最初の行にアルファベットの二重ソートが表示されます

$('tbody tr').each(function(){
    if( $.trim( $(this).find('td').eq(4).text())==''){
       $(this).find('td').eq(0).prepend('<span style="display:none">ZZZZZZZZ</span>')
       }
});

$(".sortable") .tablesorter({
      sortList: [[0,0],[4,0]], widgets: ['zebra']});
}); 

デモ:http://jsfiddle.net/zrjaM/6/

于 2013-02-02T18:11:39.757 に答える