繁体   English   中英

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

[英]Why is my jquery datatables createdrow function not working?

我正在尝试使用“数据表创建的行回调”在绘制之前修改行中的数据。 我想做的是替换所有&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]);
       }

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

是的,正确。 仅在已绘制行之后才调用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;
        },
    ],
}

将修改后的元素重新添加到相关的td(列)中。

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]);
    $('td', row).eq(0).append(data[0]);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM