自定義排序科學記數法,我想這樣的分類編號:使用jQuery插件數據表
< 1E-8
0.000027
0.000061
0.0018
0.0094
< 8.64e-12
0.049
'<' 意味着真值小於給定的數量。
這裏是我的「血統功能,」我有一個非常高的信心:
$.fn.dataTableExt.oSort['scientific-desc'] = function(a,b) {
var x = a.replace(/^[<>]/g,"");
var y = b.replace(/^[<>]/g,"");
x = parseFloat(x);
y = parseFloat(y);
return ((x < y) ? 1 : ((x > y) ? -1 : 0));
}
我定義的「上升功能」類似:
$.fn.dataTableExt.oSort['scientific-asc'] = function(a,b) {
var x = a.replace(/^[<>]/g,"");
var y = b.replace(/^[<>]/g,"");
x = parseFloat(x);
y = parseFloat(y);
return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}
我已經打了幾乎所有的初始化代碼和上面的排序功能,但似乎沒有什麼能夠讓數字在表中正確排序。數字< 1E-8總是傾向於保持在一起,並且小寫字母'e'也是如此。
初始化dataTable的代碼如下。這也可能是值得注意的是,這是代碼被稱爲AJAX調用內:
$.get('xyz.json',
function(data) {
// deal with json data
// get it ready for dataTable
// ...
$('.table').dataTable({
"sScrollY": "200px",
"aoColumns": [
null,
null,
{"bSortable": true, "sType": "scientific"},
{"bSortable": false}
],
"aaSorting": [ [2,'asc'] ],
"bPaginate": false,
"bFilter": false,
"iDisplayLength": 5,
"bRetrieve": true,
"bDestroy": true
});
});
你是說正則表達式需要'|'嗎?我認爲不管你寫^ [<>]還是^(<|>)都不重要。排序功能似乎工作。令我困惑的是,當我嘗試使用這些排序功能時,dataTables插件不會。 – gideonite 2012-04-30 03:13:15