我想在我的函数中导出到excel之前渲染一些字段,我这样做;
"tableTools": {
"sSwfPath": "assets/global/plugins/data-tables/tabletools/swf/copy_csv_xls_pdf.swf",
"aButtons": [ {
"sExtends": "xls",
"sButtonText": "Excel",
"fnCellRender":function(sValue,iColumn,nTr,iDataIndex){
console.log(sValue);
//console.log($(sValue));
return sValue;
}
}, {
"sExtends": "print",
"sButtonText": lang.L_PRINT,
"sInfo": lang.L_PRINT_DESC,
"sMessage": "Metrics"
}]
}
所以当我取消注释时
console.log($(sValue));
它只返回第一列和第二列,其中不包含任何html标记。但是当它找到一个带有html标签的值时就会停止。
ex - 这获得了价值
<td class=" sorting_1">201408</td>
这不是
<span style="text-align:right;display:block;width:100%">121.25</span>
我该如何解决?
答案 0 :(得分:1)
要解决这个问题,我发现将数据写入CSV并查看格式会更容易,因此我可以选择如何解析。
当您使用fnCellRender
属性时,TableTools将不再对HTML进行任何解析。我希望您能在控制台窗口中看到原始数据,其中一些是我假设的HTML而其他人只是值。
如果是HTML,您可以使用JQuery提取值或正则表达式。 E.g
if ($(sValue).prop("checked")) {
return "TRUE";
} else {
return "FALSE";
}
或在你的情况下
return $(sValue).val();
我用过的一些研究:
TableTools background and good discussion with links