1
我想对没有任何插件的表格行进行排序。不幸的是,我没有选择使用插件。那么这里就是我试图至今:使用jQuery排序表格行时忽略空单元格
var info = $('#project_table tr.punch_list_summary');
//For Closed Date
$(document).on('click', '#descending_closed_date', function(e) {
e.preventDefault();
var sortDir = -1;
info.sort(function(a, b) {
if ($(a).attr('data-closeddate') === 'null') {
if ($(b).attr('data-closeddate') === 'null') {
return false;
}
return true;
}
a = new Date($(a).attr('data-closeddate'));
b = new Date($(b).attr('data-closeddate'));
return (a - b) * sortDir;
});
$('#project_table').html(info);
sortDir = 1;
});
$(document).on('click', '#ascending_closed_date', function(e) {
e.preventDefault();
var sortDir = 1;
info.sort(function(a, b) {
if ($(a).attr('data-closeddate') === 'null') {
if ($(b).attr('data-closeddate') === 'null') {
return false;
}
return true;
}
a = new Date($(a).attr('data-closeddate'));
b = new Date($(b).attr('data-closeddate'));
return (a - b) * sortDir;
});
$('#project_table').html(info);
sortDir = -1;
});
});
正如你可以看到我使用data-attribute
的行进行排序。 封闭日期列可以为空或可以有日期。问题是,它只是对随机行进行排序,而且,我试图将底部的所有空行和顶部的闭合日期的行。我可能做错了什么?
这里的工作jsbin为那些谁想看看我已经做到现在。我真的很感激任何帮助。
UPDATE
这里有一个更新的jsbin。我现在可以通过关闭日期进行排序,但它仍然不会强制关闭日期为空的行到底。
什么不工作?按截止日期进行排序工作正常 – juvian
@juvian嗯,我希望将行与封闭的日期和空的下来,然后排序它们。 – user1601973
我不希望所有浏览器都以'new Date('Apr 25 2014');'的格式正确解析日期字符串,',其中的一部分结果是'NaN'。考虑使用[时间值](http://ecma-international.org/ecma-262/5.1/#sec-15.9.1.1)。 – RobG