我正在使用找到here的JQuery Datatable插件。我有以下代码。我的代码中有一行带有以下注释//我需要在这里访问变量row.RECIBO。在下面的className参数中,我试图访问变量名称,以便我可以使用ID区分我的类。我怎样才能实现我的目标?
var table = $('#tableCLIX1').DataTable({
"order": [[0, "desc" ]],
"ajax": {"url": "reciboBackend.php", "type": "POST", "dataSrc": "db" },
"columnDefs": [{
"render": function(data, type, row){ return row.RECIBO},
"targets": 8,
"className": "tranState" + VARIABLE //I need to access the variable row.RECIBO here
}],
"columns": [
{"data": "RECIBO", className: "recibo"},
{"data": "NOMCLI"},
{"data": "CLIENTE"},
{"data": "FECHA"},
{"data": "NUMPOL"},
{"data": "FACTURA"},
{"data": "TIPO"},
{"data": "VALOR"},
{"mRender": function(data, type, full){if(full["TRANSTATE"] == null) return "<button id = 'cancelar" + full["RECIBO"] + full["FACTURA"] + "' class='button-error pure-button cancelar-btn " + full["RECIBO"] + "' > Cancelar </button>"; else return full["TRANSTATE"];}},
{"mRender": function(data, type, full, meta){return '<a href = "reImprimir.php?recibo=' + full["RECIBO"] + '+&tranState=' + full["TRANSTATE"] + '" target = "_blank"> Imprimir </a>';}}
],
"deferRender": true
});
答案 0 :(得分:3)
注意:对于第8列,您都有columns
mRender
和 columnDefs
render
方法,为什么?代码有问题。
无论如何,className
对于列中的所有<td>
都是静态的,并且不支持回调。 render
严格来说是单元格的内容,除了作为内容添加的内部元素外,不能用于添加CSS。
但您可以使用rowCallback
对呈现的行进行后期处理,然后使用行RECIBO
值将类添加到第8列:
var table = $('#tableCLIX1').DataTable({
rowCallback: function(row, data, index) {
$('td:eq(8)', row).addClass('tranState'+data.RECIBO);
},
// ...
})