gpt4 book ai didi

javascript - DataTables自定义检测插件及排序顺序

转载 作者:行者123 更新时间:2023-12-03 09:44:48 25 4
gpt4 key购买 nike

我正在尝试在数据表上实现一个函数,该函数必须查找表数据,执行正则表达式,然后,如果它返回 true,那么当我单击标题对数据进行排序时,它将按最后 5 位数字,忽略字符串开头出现的字母。

我有以下代码

$.fn.dataTable.ext.oSort['custom'] = function (settings, col) {
return this.api().column(col, {order: 'index'}).nodes().map(function (td, i) {
var string= $(td).html();
return $.trim(string.substr(string.length - 4));
});
}


$.fn.dataTable.ext.type.detect.push(
function (value) {
var test = (/PT\d/).test(value);
return test ? 'custom' : null;
}
);

这是针对自定义数据的,该数据在开始时有很多垃圾,例如国家/地区代码之类的内容,但数据顺序仅按最后 5 位数字。

我一直在寻找我很难理解和调试。调试检测有效,如果 1 发出警报,当它用我想要的值命中列时,它会给我 true,但自定义排序不起作用,任何人都可以帮忙吗?

希望我清楚

谢谢

最佳答案

其实我自己解决了。

问题是 DataTables 需要使整个列返回 true,因此,如果正则表达式在同一列中的任何值中失败,它就会失败。

$.fn.dataTable.ext.type.detect.unshift(
function (d) {
var pt = (/^PT\d/).test(d);
var es= (/^ES\d/).test(d);
var en= (/^EN\d/).test(d);
if (pt || es|| en) {
return 'custom'
} else {
return false;
}
}
);

$.fn.dataTable.ext.type.order['custom-pre'] = function (string) {
return $.trim(string.substr(string.length - 4));
};

这是我最后使用的代码,它工作得很好。

我发布它是为了让任何有同样问题的人都可以找到解决 future 问题的线索:)

关于javascript - DataTables自定义检测插件及排序顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31069000/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com