为什么我的jquery数据表createdrow函数不起作用?

use*_*233 5 html javascript jquery datatables jquery-datatables

我正在尝试使用“数据表创建的行回调”在绘制之前修改行中的数据。我所试图做的是全部替换&lt;,并&gt;'<''>'这样我就可以把每个细胞一个换行符,并有单独的行上的文字。'\n'linefeed不起作用。

var oTable = $('#table').DataTable( { 
      "createdRow" : function( row, data, index) {
         console.log( 'DATA WAS ' + data[0]);
         data[0] = data[0].replace(/&lt;/g,'<').replace(/&gt;/g,'>');
         console.log( 'DATA IS ' + data[0]);
       }
Run Code Online (Sandbox Code Playgroud)

在控制台中,我可以看到数据已正确修改。但是它实际上并没有修改表。有没有办法做到这一点?还是在绘制完行后调用createdRow回调?

Zen*_*odr 4

是的,正确。createdRow 回调仅在行已绘制后调用。我不会修复您当前的代码,而是向您展示如何通过使用列 defs 来使用正确的(?)方式来完成此操作:D 另外,我认为/希望有一些东西可以&lt;自动转换您的内容。

var oTable = $('#table').DataTable( { 
    "columnDefs": [ {
        "targets": 0,
        "render": function(data, type, row, meta) {
            html = data.replace(/&lt;/g,'<').replace(/&gt;/g,'>');
            return html;
        },
    ],
}
Run Code Online (Sandbox Code Playgroud)