JQuery表分拣机没有'不能使用日期范围字符串
JQuery table sorter doesn't work with date range string
我的表中有一列显示了以下文本的变化,其中日期变化
Requested Statement 7/1/2014 - 9/16/2014
正如您在这个fiddle中看到的那样,tablesorter在正确排序时遇到了问题。单击第一列时会进行排序,但第二列不会。我还包含了一些字符串比较表,以表明javascript能够正确识别它们的顺序
http://jsfiddle.net/kfu4ragh/1/
我尝试添加一个自定义的textExtraction
函数,但仍然得到了相同的结果。
表分类器似乎在做一些不同于简单的>
或<
的事情来确定字符串值的顺序。有没有一种方法可以改变表分类器来正确地对这一列进行排序?
问题是第二列("Requested Statement…")被检测为日期列,解析器试图将整个字符串转换为日期;这是无效的。
这是一个从表分类器中提取相关功能的演示。结果是:
// start with "Requested Statement 7/1/2014 - 9/16/2014"
"Requested Statement 2014/7/1 / 9/16/2014" => 0
因此,您需要使用textExtraction
函数来确定日期(演示):
$('table').tablesorter({
textExtraction : function(node){
var txt = $(node).text();
if (/request/i.test(txt)) {
// return the 3rd block (first date in range)
txt = txt.split(' ')[2];
}
return txt;
}
});
请注意,字符串中的第二个日期将被完全忽略。如果你想让第二次约会变得重要,试试这个代码(演示):
$('table').tablesorter({
textExtraction : function(node){
var d1, d2,
txt = $(node).text();
if (/request/i.test(txt)) {
// return the 3rd block (first date in range)
txt = txt.split(' ');
d1 = $.tablesorter.formatFloat(new Date(txt[2]).getTime());
d2 = $.tablesorter.formatFloat(new Date(txt[4]).getTime());
// add the times together - there is likely a better
// method but this works in this situation
txt = d1 + d2;
}
return txt;
}
});
相关文章:
- 基础日期选择器、结束日期(和时间)不能早于开始日期(和时间)
- webview日期选择器可以在android模拟器中工作,但不能在设备上工作
- 日期不能显示在高图表上
- Date.prototype.get日期;不能在Safari中工作
- 日期函数不能正常工作
- 为什么在IE8中禁用日期不能正确使用Jquery日期选择器
- Eonasdan日期时间选择器没有'不能在联机模式下工作
- 如何使用jQuery检查日期不能小于当前日期
- 如果当前日期>今天不能使用Javascript
- JQuery表分拣机没有'不能使用日期范围字符串
- 如何在jquery日期选择器中禁用日期和天数.但这两种功能不能同时工作
- 合并两个多维数组,但不能使用日期时间重复
- 日期.parseExact不能给出准确的结果
- 不能使用angular.js注入日期picker模块
- AngularJS -不能在视图中显示日期对象
- D3不能在safari中绘制日期轴,解析错误
- Bootstrap 3 Datepicker v4 -不能将日期设置为0到14400000之间的值
- 不能转换成正确的格式日期&来自fullcalendar事件对象的小时
- jQuery对话框不能与日期拾取器一起工作
- 可以验证1个日期,但不能验证电机阵列[]