jQuery のプラグインの DataTables を使っていて、すべての行に含まれる項目を処理したいときなどは、fnGetNodes() で項目を取り出して処理をする。
- fnGetNodes
- Get a single TR node or all TR nodes for the table. Useful for event manipulation.
各行に .hoge があるとして、テーブルが出来たあと ( $('#example').dataTable(); をしたあとの状態 ) で、
$('#example td .hoge').css('color', '#ff0000');
としても現在表示中のページの項目しか変わらない。
DataTables は、表示されている行とは別に、表全体のデータを DOM から取り除いているので、 fnGetNodes() で取り出して処理する必要がある。
一気に処理
var oTable = $('#example').dataTable();
$(otb.fnGetNodes()).find('.hoge').css('color','#ff0000');
それぞれを処理
var oTable = $('#example').dataTable();
$( oTable.fnGetNodes() ).each(function(){
$(this).find('.hoge').css('color', '#ff0000');
});
やりかたがわからなくてハマっていたら、FAQ でした。