2017-10-06 95 views
1

我使用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

請出示一些禮貌回答我的回答。它激勵了我們很多,並鼓勵我們回答。 –

回答

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參考