jQuery tablesorter插件对于一个特定的情况并不是很好。基本上,我只想在文本“无”和“任何人”之间进行排序......但我无法弄清楚如何做到(甚至在哪里开始,真的......)。
第3列充满了许多不同的可能性,但我想要做的很简单:
提前致谢。
现在,通话看起来像这样:
$(document).ready( function () {
// TableSorter
$("#dt-results")
.tablesorter({
widgets: ['zebra'],
sortList: [[0,1]],
headers: {
1: {
sorter:'currency'
}
},
textExtraction: function(node) {
return $(node).text();
}
})
.tablesorterPager({container: $("#pager")})
.tablesorterFilter({filterContainer: $("#filter-box"),
filterClearContainer: $("#filter-clear-button"),
filterCaseSensitive: false,
filterWaitTime: 10});
});
答案 0 :(得分:1)
查看更新的代码:http://jsfiddle.net/L4PFn/9/
你当然可以使代码更清洁。
但是现在逻辑是.. textExtraction: function(node)
为你提供了列的html /内容,你需要返回将用于排序的文本。
因此,第一步是如何识别当前的textextraction位于用户列。为此,您可以对用户列的内容使用唯一的class属性。 在我的例子中,我添加了usercol作为该类
<div class="outer usercol">
<div class="inner">
<div style="line-height:12px; margin-bottom:10px;">Bobb Johnson<br> <em>STATUS</em><br>
</div>
</div>
</div>
和
<div class="outer usercol">None</div>
并在textExtraction
添加
if($(node.innerHTML).hasClass('outer') && $(node.innerHTML).hasClass('usercol') ){
}
此if
语句告诉我们,我们位于用户列
下一步是检查当前列的内容是否为“无”。如果'无'则返回'z'或'a',因为这将确保'none'在排序时位于顶部或底部
if($.trim($(node).text()) == 'None'){
return 'z'; //so that none comes last
}
否则您可以返回$(node).text();
或更好的方法是深入查看name
。
您可以在范围中添加名称,为其指定唯一的类名,然后返回$(node.innerHTML).find('span.unique-class-name').text()