我有一个包含日期和文本数据的列:
<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;解决将分拣机类型设置为文本。