You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DataTables 含序数后缀的第0列排序异常无法按数字顺序正确排列

问题根因

DataTables默认将包含º特殊符号的第0列识别为字符串类型,执行字典序排序:字符串比对逻辑中"10º"的首字符为1,会排在首字符为2的"2º"之前,和你需要的数字自然排序逻辑不符,所以会出现排序混乱的情况。

修复方案

不需要修改现有HTML和后端逻辑,仅调整DataTables的JS配置,给第0列指定排序时的取值规则即可,修改后的完整JS代码如下:

$(document).ready(function() {
    $('#example').DataTable( {
        "order": [[ 0, "desc" ]],
        "iDisplayLength": 50,
        "pagingType": "full_numbers",
        "responsive": true,
        // 新增列配置定义排序规则
        "columnDefs": [
            {
                "targets": 0, // 配置生效的列索引,第0列为ANO列
                "render": function (data, type, row) {
                    // 仅排序场景提取列文本前的数字作为排序依据
                    if (type === 'sort') {
                        return parseInt(data.split('º')[0], 10);
                    }
                    // 显示、过滤等其他场景返回原始文本,不影响展示效果
                    return data;
                }
            }
        ]
    } );
} );

如果第1列BIÊNIO也需要按同样规则排序,只需要把targets的取值改为[0, 1]即可复用该逻辑。

内容的提问来源于stack exchange,提问作者Liandro Cos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 13:48:04