在jQuery DataTables中的Ajax请求之后在td中添加html元素

时间:2015-10-07 13:35:42

标签: jquery ajax datatables

我想在获取ajax的响应后在td中添加html元素。

结果将是:

<tr>
<td class="mycus-class" data-title="abc"><span class="mycus-class2">XYZ</span></td>
<td class="mycus-class" data-title="ghi"><span class="mycus-class2">GKL</span></td>
.....
</tr>

2 个答案:

答案 0 :(得分:13)

使用render()函数非常简单,这里有一个小小的演示:

var data = [
    { firstName: 'john', lastName : 'doe' }
]

var table = $('#example').DataTable({
    data : data,
    columns : [
       {  data : 'firstName',
          render : function(data, type, row) {
              return '<span class="mycus-class2">'+data+'</span>'
          }    
       },
       {  data : 'lastName' }
   ]        
})  

<强> http://jsfiddle.net/e9be48oq/

您可以在一次调用中定位多个列:

columnDefs : [
   { targets : [0,3,4,5],
     render : function(data, type, row) {
        return '<span class="mycus-class2">'+data+'</span>'
     }     
   }
]

答案 1 :(得分:0)

  "fnRowCallback": function (nRow, aData, iDisplayIndex, iDisplayIndexFull) {
                console.log(aData[1]);
                if (aData[1] == "Imported")
                {
                    // $('td').css('background-color', '#FBE9E7');
                     $(nRow).find('td:eq(1)').addClass('label label-success');
                } else if (aData[1] == "Inactive") {
                    $(nRow).find('td:eq(1)').addClass('label label-danger');
                } else if(aData[1] == "Exported") {
                   $(nRow).find('td:eq(1)').addClass('label label-primary');
                }else{
                  $(nRow).find('td:eq(1)').html('<span class="label label-default">'+aData[1]+'</span>');
                    // $.addClass('label label-default');
                }

            },