jquery数据表访问className中的变量

时间:2016-01-25 15:15:29

标签: javascript jquery datatables

我正在使用找到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

});

1 个答案:

答案 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);
   },
   // ...
})