使用jQuery更新表后,DataTables fnFilter无法正常工作

问题描述:

我使用DataTables jQuery库作为我项目中的表。使用jQuery更新表后,DataTables fnFilter无法正常工作

要自定义过滤我已将带有过滤词的span标签添加到每行的第一列中。例如:

<span style="display:none;" id="spanFilter' + i + '">filterWord</span> 

然后我用select来过滤这些单词。

$("#filterSelect").on('change', function() { 
    oTable.fnFilter($("#filterSelect option:selected").val(), 0); 
}); 

这工作正常。

我也有代码来更改#spanFilter的filterWord。

$("#spanFilter" + i).text(spanFilterValue); 

在用jQuery更改filterWord后,​​无法正常工作。

我在做什么错?

+1

这可能BEC因为你正在改变HTML中的'filterWord',而数据表使用底层的数据源,无论这可能是什么。你如何填充桌子? – markpsmith

+0

请出示一些礼貌回答我的回答。它激励了我们很多,并鼓励我们回答。 –

通过查看您的代码,我相信您正在使用dataTables legacy version。如果你刚开始使用dataTables,我会强烈建议你使用最新版本。

无论如何反映在dataTables我强烈建议你使用dataTables api来改变表的内容,而不是使用jQuery。

注:以下示例是数据表V1.9

$(document).ready(function() { 

    var oTable = $('#table').dataTable(); 

    // get an array of the TR nodes that are used in table's body 
    var nNodes = oTable.fnGetNodes(); 

    // iterating over each TR or row 
    nNodes.forEach(function(node,index) { 

    // update first column of every node 
    oTable.fnUpdate(spanFilterValue,node,0); 

    }); 

}); 

的API参考