Javascript DataTables搜索和排序不适用于动态添加的数据

Javascript DataTables搜索和排序不适用于动态添加的数据,javascript,jquery,datatables,datatables-1.10,Javascript,Jquery,Datatables,Datatables 1.10,我有一个DataTable,需要从AJAX调用中动态插入/追加数据。在这种数据表上进行搜索和排序似乎没有达到预期效果。这是我的 代码: $('#example').DataTable( { "iDisplayLength": 10, "lengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]], "aaData": md, "aaSorting": [[1, 'asc']],

我有一个DataTable,需要从AJAX调用中动态插入/追加数据。在这种数据表上进行搜索和排序似乎没有达到预期效果。这是我的

代码:

$('#example').DataTable( {
       "iDisplayLength": 10,
        "lengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]],
        "aaData": md,
        "aaSorting": [[1, 'asc']],
        "createdRow": function (row, data, index) {
                $('td', row).eq(0).append('<u><a target="_blank" href="' + data["Data"][0].Link + '">' + data["Data"][0].Value + '</a></u>');
                $('td', row).eq(1).append(data["Data"][1].Value);
                $('td', row).eq(1).prop('title', data["Data"][1].Value);
                for (var i = 2; i < data["Data"].length; i++) {
                    if (data["Data"][i].Value == "green") {
                        $('td', row).eq(i).addClass('highlight1');
                        $('td', row).eq(i).append(data["Data"][i].Value);
                    }
                    else if (data["Data"][i].Value == "red") {
                        $('td', row).eq(i).addClass('highlight3');
                        $('td', row).eq(i).append(data["Data"][i].Value);
                    }
                    else if (data["Data"][i].Value == "blue") {
                        $('td', row).eq(i).addClass('highlight2');
                        $('td', row).eq(i).append(data["Data"][i].Value);
                    }
                    else{
                        $('td', row).eq(i).append(data["Data"][i].Value);
                    }
              }
        },
        "scrollX": true,
        "scrollCollapse": true,
        "fixedColumns": {
           "leftColumns": 2,

        },
        "sScrollXInner": "150%",
        "fixedHeader": true,
        "columnDefs": [{
            "defaultContent": "",
            "targets": "_all",
            "data": null,
            "render":  {
              //  "_":spData[0].Cells[2].Value,
            }
        }],
    } );
$('#示例')。数据表({
“iDisplayLength”:10,
“长度菜单”:[[10,25,50,-1],[10,25,50,“全部”],
“aaData”:md,
“aaSorting”:[[1,‘asc']],
“createdRow”:函数(行、数据、索引){
$('td',行).eq(0).append('');
$('td',row).eq(1).append(data[“data”][1].Value);
$('td',row).eq(1).prop('title',data[“data”][1].值);
对于(变量i=2;i

对这个问题有什么解决方案或想法吗

我不相信
createdRow
在做你想做的事。根据数据表:

当创建了TR元素(并且插入了所有TD子元素)或使用DOM源注册时,将执行此回调,从而允许操纵TR元素

您的
子元素正在由
createdRow
呈现,搜索和排序功能不知道它们的存在


如果要在初始化了
DataTable()
之后添加行,则应该使用
row.add()
。关于它的更多信息可以在DataTable中找到。但是这里有一个基于原始链接的更新,使用
row.add()
将您的行添加到表中,允许搜索和排序现在可以对它们进行操作。

谢谢@Jeremy Southard!这个解决方案对我有效!