【问题标题】:jquery datatables add new row alphabeticallyjquery数据表按字母顺序添加新行
【发布时间】:2025-12-20 05:30:06
【问题描述】:

我目前在我的一个项目中使用 jQuery 数据表。我坚持的是能够动态添加新行,同时按字母顺序添加行。

我知道我需要使用 API 中的 fnadddata 来添加一行,但此函数仅将新行添加到表的末尾。它不按字母顺序添加。因此,我编写了自己的代码来找到手动添加行的位置。

$(".rowList").each(function( ) {
    if( $(this).text( ).toLowerCase( ) > eObj.response.name.toLowerCase( ) ) {
        $(this).closest("tr").before( eObj.response.html ); // html is the new row from server
        return false;
    }
}

上面的代码找到字母位置并相应地在表中创建一个新行。但是当然,由于我没有使用 datatables fnaddData 函数,一旦添加了行并且当我单击表上的某个事件(例如:排序、搜索、过滤)时,新行就消失了。

我理解这一点是因为数据表的 DOM 和缓存问题。那么有没有办法让我处理呢?

【问题讨论】:

    标签: php jquery datatables


    【解决方案1】:

    您不能使用 fnadddata 将其插入到最后,然后根据列的字母值对行进行排序吗?

    【讨论】:

    • 感谢您的回复 weexthis。我试图这样做,但数据表中新行的排序要么只是到顶部,要么到底部。不能按字母排序
    【解决方案2】:

    fnAddData 肯定会在运行后对表进行排序 - 例如:http://live.datatables.net/aceyed/edit#javascript,html。请链接到显示问题的测试用例。

    【讨论】:

    • fnAddData 文档还显示它默认排序,但您也可以根据需要关闭排序:datatables.net/api