我在this fiddle中有一个html表,并尝试使用jquery对列进行排序,并引用this stack overflow answer as,
var arr = $('th').filter(function() {
return (new Date(this.innerHTML)).getDate();
}).sort(function (a, b) {
return new Date(a.innerHTML) > new Date(b.innerHTML);
}).map(function () {
return this.cellIndex
}).get();
$('tr').each(function () {
$(this).children().filter(function(){
return $.inArray(this.cellIndex, arr)> -1;
}).sort(function (a, b) {
a = $.inArray(a.cellIndex, arr);
b = $.inArray(b.cellIndex, arr);
return a > b;
}).insertBefore(this.lastElementChild);
});
最长可达10个月的列。但是如果月份列的数量超过10,则排序将按照小提琴中的分配进行折叠。我该如何解决这个问题?
答案 0 :(得分:1)
如果您打印数组arr
中的条目,您会发现排序错误。这与排序功能有关。
原始代码中的排序函数返回a > b
给定的输入(a, b)
。在a <= b
的情况下,排序函数将返回0
,因此如果我们有严格的不等式a < b
,则排序函数会建议a
与{{{1}一样大1}}(因为它返回0),这就是出现错误的地方。
您可以尝试以下代码:
b