在addParser中具有动态格式函数的TableSorter
TableSorter with dynamic format function in addParser
我在包含字符串的列上使用TableSorter:
$.tablesorter.addParser(
{
id: 'positions',
is: function(s) {
return false;
},
format: function(s) {
var abbr=s.replace(/[^a-zA-Z0-9]/g, '').slice(_sortpos);
return abbr;
},
type: 'numeric'
}
);
format函数应返回一个依赖于全局_sortpos变量的值。此值会动态更改。线路:
var abbr=s.replace(/[^a-zA-Z0-9]/g, '').slice(_sortpos);
去掉所有非数字和非字母,然后删除一定数量的初始字符。目的是按照_sortpos-th字符进行排序。
似乎发生的情况是,当解析器被添加到表分类器时,每个字符串只解析一次格式化函数。然而,出于我的目的,每次排序时都必须重新运行格式化函数。
到目前为止,我已经尝试在每次排序时添加解析器,但没有成功。我还试图通过重新运行我的初始化来重新初始化表分类器
$(".tablesorter").tablesorter(
{
sortReset: true,
headers: {
1: {
sorter: 'positions'
}
}
}
);
但无济于事。
我能做什么?还有:有没有一个比较器函数可以用来偷偷输入全局参数?然后,我可以在解析器中格式化字符串,然后在比较器中的slice()-函数中动态使用_sortpos。
我自己找到了一个答案:
$(document).ready(function() {
$(".tablesorter").tablesorter(
{
textSorter: function(a, b, table, column){
if (column==1)
{
var c=parseInt(a.replace(/[^a-zA-Z0-9]/g, '').slice(_sortpos));
var d=parseInt(b.replace(/[^a-zA-Z0-9]/g, '').slice(_sortpos));
return ((c < d) ? -1 : ((c > d) ? 1 : 0));
}
return a.localeCompare(b);
}
}
);
});
它不使用解析器,只使用自定义排序器对列==1进行排序。
相关文章:
- Google Sheets自定义函数条件格式
- 如何将PHP变量从Blade格式HTML传递给JavaScript函数
- 函数未定义,参数格式
- 如何编写验证函数以仅读取 XLS 和 XLSX 格式的 Excel 文件
- JS es2015 中的未知函数格式
- 自调用匿名函数格式之间的差异
- 哪个 JAvaScript 库定义了 JavaScript Date Object 的格式函数
- JavaScript函数来重新排列日期格式
- 需要更改 javascript 函数中的日期格式
- 自动嵌入Youtube的jQuery函数需要接受多种链接格式
- 不同的JavaScript函数格式
- 更改Netbeans为javascript函数参数自动设置空格缩进格式的方式
- Javascript自定义函数,用于将JSON格式的YQL查询响应导入谷歌电子表格
- D3日期格式抛出'd.getFullYear不是函数'
- 函数将UNIX时间戳转换为月/日期/年格式
- 不同日期格式的通用FormatDate函数
- 将以这种格式声明的函数放入single.js中,以便包含在其他文件中
- 在addParser中具有动态格式函数的TableSorter
- 使用jquery函数设置日期格式
- highcharts.js中y轴标题文本的格式函数