私の答えは、いくつかの変更を加えた@davidkonradの答えに基づいています:
$('button.print-bt').on('click', function() {
var fvData = oTable.rows({ search:'applied', page: 'all' }).data();
$('#main_wrapper').append(
'<table id="newTable">' +
'<thead>'+
'<tr>'+
$.map(oTable.columns().visible(),
function(colvisible, colindex){
return (colvisible) ? "<th>" + $(oTable.column(colindex).header()).html() + "</th>" : null;
}).join("") +
'</tr>'+
'</thead>'+
'<tbody>' +
$.map(fvData, function(rowdata, rowindex){
return "<tr>" + $.map(oTable.columns().visible(),
function(colvisible, colindex){
return (colvisible) ? "<td>" + $('<div/>').text(rowdata[colindex]).html() + "</td>" : null;
}).join("") + "</tr>";
}).join("") +
'</tbody></table>'
);
});
私の答えは、データ ソースとしてオブジェクトを持つテーブルでは機能しない可能性があり、rowdata[colindex]
.
$('<div/>').text(data).html()
データに存在する可能性のある HTML エンティティをエンコードするトリックを使用しています。
デモンストレーションについては、この JSFiddleを参照してください。