使用textExtraction和textSorter的JQuery tablesorter自定义排序器

时间:2015-11-03 02:49:57

标签: javascript jquery tablesorter

我有一个包含日期和文本数据的列:

<td>
<div class="date">07/01/2016</div>
<div class="status">open</div>
</td>

我需要先对日期进行排序,然后在同一日期内按照&#34; status&#34;的文本进行排序。 DIV。以下代码是我到目前为止使用textExtraction和textSorter选项,但该列没有排序。我发现的奇怪的事情是,当我将第一行改为:

<td><span class="date">07/31/2016</span><div class="status">open</div></td>

它能够在没有第一行的情况下对表的其余部分进行排序。有人可以帮忙吗?谢谢。 jsfiddle链接(here

$(document).ready(function() { 
$('#articles-table').tablesorter({
    textExtraction:{
            2:function(node, table, cellIndex){
                var $n = $(node).find('div');
                return $.trim($n.eq(0).text())+";"+$.trim($n.eq(1).text());
                }
    },
    textSorter:{
        2:function(a, b){
                var aArr = a.split(";")[0].split('/');
                var bArr = b.split(";")[0].split('/');
                var aDate = aArr[2] + aArr[0] + aArr[1] + "";
                var bDate = bArr[2] + bArr[0] + bArr[1] + "";
                var result= aDate < bDate ? -1 : (aDate > bDate ? 1 : 0);
                 if (!result) { // Level 1 is equal
                    var sa = a.split(";")[1];
                    var sb = b.split(";")[1];
                    result = sa.localeCompare(sb);
                 }
                return result;
            }


    }
});

}); 

编辑:通过添加class =&#34; sorter-text&#34;解决将分拣机类型设置为文本。

0 个答案:

没有答案