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 でした。