【发布时间】:2014-09-19 05:49:28
【问题描述】:
我在 this fiddle 中有一个 html 表,并尝试使用 jquery 参考 this stack overflow answer 对列进行排序,
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,排序将崩溃,如小提琴中给出的。我该如何解决这个问题?
【问题讨论】:
-
不确定这可能如何工作。返回的日期都是无效的。可以通过将它们记录到您的排序或过滤器中的控制台来进行验证。试试
console.log(new Date('Feb 2014'))作为证据 -
我想按月份排序。我提到了this stack answer中给出的这个小提琴jsfiddle.net/AEvpd
-
定义按月、年排序不重要?据我所见,演示不起作用。还有你拥有的非日期列呢?
-
小提琴 jsfiddle.net/AEvpd 在 chrome 中工作正常
-
好的,我没有检查 chrome,并提出了基于 Firefox 不接受缩写日期的问题。
标签: jquery sorting html-table