0

I have such html table: here: http://jsfiddle.net/zrjaM/1/

And such js for sorting:

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

But i need to sort via 0-th column to.... i write:

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

but it works strange...

Also i need to do that, tr's with price value (4-th column) are on top, but now, when i sort only by price - all is ok, but when via two columns, i could have tr's with price both in end or middle.... How to send them to top, and sort first via 0-th, then via sorter 0-th sort via 4-t column.... How to do it?

4

2 回答 2

2

@charlietfl 的解决方案即使没有添加ZZZZZZZ到空单元格的代码也可以工作。但是因为该演示使用的是原始版本的 tablesorter,所以必须删除第一个 tbody。

但是,因为看起来您正在使用我的 tablesorter 分支,它确实允许对多个 tbodies 进行排序,所以您需要做的就是将emptyTo选项设置为none.

emptyTo选项bottom默认设置为。因此,所有空单元格将始终排序到底部。第三列看起来根本没有排序的原因是因为该列中的所有链接都具有相同的文本。这是一个演示

更新:也tablesorter-headerSortDown从第四列中删除,它仍在 css 中,但插件tablesorter-headerDesc现在正在使用。

于 2013-02-04T16:34:23.497 回答
1

我想出了一个可能的解决方案。

首先检查没有价格的行,如果没有价格,则在第一列的项目名称之前添加一个隐藏的跨度,其中的文本ZZZZZZZ。这会强制所有ZZZZZZZ项目到底部,并且您会在第一行获得双重排序字母

$('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 回答