数据表fnCellRender无法渲染

时间:2014-12-07 11:22:44

标签: javascript jquery

我想在我的函数中导出到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>

我该如何解决?

1 个答案:

答案 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

TableTools Reference API