【发布时间】:2018-02-25 01:34:56
【问题描述】:
我是 JavaScript 的初学者,正在创建一个带有动态排序表的静态网站。我正在使用 jQuery 的 DataTables 插件。
我遇到的问题是某些单元格是空的,或者有破折号而不是数值。在 DataTables 的排序方法下,这些单元格显示在顶部以进行升序排序。但是,我希望这些单元格始终显示在底部(因为它们不包含任何有用的信息)。
这里是该站点的完整源代码链接:http://lerium.com/wip/index.html
正如您在源代码中看到的,我正在尝试对第 3 列和第 4 列使用以下脚本:
function testNumericEmptyBottom(a, b, high) {
var reg = /[+-]?((\d+(\.\d*)?)|\.\d+)([eE][+-]?[0-9]+)?/;
a = $(a).text().match(reg);
a = a !== null && parseInt(a[0]) !== 0 ? parseInt(a[0]) : high;
b = $(b).text().match(reg);
b = b !== null && parseInt(b[0]) !== 0 ? parseInt(b[0]) : high;
return ((a < b) ? -1 : ((a > b) ? 1 : 0));
}
jQuery.extend(jQuery.fn.dataTableExt.oSort, {
"numeric-empty-bottom-asc": function(a, b) {
return testNumericEmptyBottom(a, b, Number.POSITIVE_INFINITY);
},
"numeric-empty-bottom-desc": function(a, b) {
return testNumericEmptyBottom(a, b, Number.NEGATIVE_INFINITY) * -1;
}
});
但是,因为数字不是整数,所以这不起作用。我曾尝试将 parseInt 更改为浮动类型,但这不起作用,我还尝试了 toLocaleString。我想问题是我有百分比,在我的语言中,我们使用逗号而不是点来表示小数点。
您能提出解决方案吗?
【问题讨论】:
标签: javascript jquery sorting datatables