使用 jQuery Tablesorter 自定义字母数字排序
Custom alphanumberic sort with jQuery Tablesorter
我目前正在为我的项目表使用 jQuery Tablesorter,我想让它处理自定义排序,以便:
A, AA, B, BB, 1, 2
排序为:
1, 2, A, B, AA, BB
我可以在初始化期间通过 textSorter
选项实现此目的,如下所示:
$(".tablesorter").tablesorter({
textSorter: {
3: function (a, b) {
return b.length > a.length ? -1 : b.length < a.length ? 1 : b.toString() > a.toString() ? -1 : 1;
}
}
}
或者更明确地说:
if (b.length > a.length) {
return -1;
} else if (b.length < a.length) {
return 1;
} else {
if (b.toString() > a.toString()) {
return -1;
} else {
return 1;
}
}
但是我想做的是能够在指定类名时将其设置为默认排序,类似于我能够将 sorter-floats
作为类添加到任何 [=18] =] 像这样 <th class='sorter-floats'>COL NAME</th>
并使用 addParser
方法来处理解析排序依据的值,如下所示:
$.tablesorter.addParser({
id: "floats",
is: function (s) {
return false;
},
format: function (s) {
return $.tablesorter.formatFloat(s.replace(/,/g, ''));
},
type: "numeric"
});
我无法在 tablesorter 插件中找到任何允许以这种方式自定义排序的方法。这可能吗,或者我已经使用过的方法是我的最佳选择?
Tablesorter 未设置为允许 textSorter
option 包含除整体函数以外的任何内容,或包含从零开始的列索引的对象。
我刚刚用补丁更新了 master 分支,该补丁还允许添加列 class 名称 (demo):
$(function() {
$("table").tablesorter({
theme: 'blue',
textSorter: {
'.sorter-float': function(a, b) {
return b.length > a.length ? -1 :
b.length < a.length ? 1 :
b.toString() > a.toString() ? -1 : 1;
}
}
});
});
我还没有决定下一个版本什么时候可用,但不会太久。
我目前正在为我的项目表使用 jQuery Tablesorter,我想让它处理自定义排序,以便:
A, AA, B, BB, 1, 2
排序为:
1, 2, A, B, AA, BB
我可以在初始化期间通过 textSorter
选项实现此目的,如下所示:
$(".tablesorter").tablesorter({
textSorter: {
3: function (a, b) {
return b.length > a.length ? -1 : b.length < a.length ? 1 : b.toString() > a.toString() ? -1 : 1;
}
}
}
或者更明确地说:
if (b.length > a.length) {
return -1;
} else if (b.length < a.length) {
return 1;
} else {
if (b.toString() > a.toString()) {
return -1;
} else {
return 1;
}
}
但是我想做的是能够在指定类名时将其设置为默认排序,类似于我能够将 sorter-floats
作为类添加到任何 [=18] =] 像这样 <th class='sorter-floats'>COL NAME</th>
并使用 addParser
方法来处理解析排序依据的值,如下所示:
$.tablesorter.addParser({
id: "floats",
is: function (s) {
return false;
},
format: function (s) {
return $.tablesorter.formatFloat(s.replace(/,/g, ''));
},
type: "numeric"
});
我无法在 tablesorter 插件中找到任何允许以这种方式自定义排序的方法。这可能吗,或者我已经使用过的方法是我的最佳选择?
Tablesorter 未设置为允许 textSorter
option 包含除整体函数以外的任何内容,或包含从零开始的列索引的对象。
我刚刚用补丁更新了 master 分支,该补丁还允许添加列 class 名称 (demo):
$(function() {
$("table").tablesorter({
theme: 'blue',
textSorter: {
'.sorter-float': function(a, b) {
return b.length > a.length ? -1 :
b.length < a.length ? 1 :
b.toString() > a.toString() ? -1 : 1;
}
}
});
});
我还没有决定下一个版本什么时候可用,但不会太久。