JQuery datatables 将符合条件的单元格设置特殊背景,添加点击事件


       项目中使用到了插件datatables,实在太强大了,有了这样的需求,需要根据数据来显示是否要更换背景,以便区别对待,datatables里面有一个属性是: aocolumndefs,里面可以获取到每行的一行json数据,然后设置背景,返回即可.如下:

//设置某些列为特定样式
"aoColumnDefs" : [
{"aTargets": [0], mRender: function (data, type, c, d) {
																				alert("类型为:"+type);
																				alert("渲染类型:"+d);
//																			   alert(c.lastPersonWage.wage.positionRankWage);
//																			   alert(c.currentPersonWage.wage.positionRankWage);
																			   var lastM =c.lastPersonWage.wage.positionRankWage;
																			   var currentM = c.currentPersonWage.wage.positionRankWage;
																			   if(lastM != currentM){
																				   alert("两者不相等");
																				   
																				 return   data ="<span  class='cos_class'>测试更改某个单元格</span>";
																				   //return c.lastPersonWage.wage.positionRankWage;
																			   }
																			  return c.currentPersonWage.retirementCardNo;
																			}},
																			
//																			{
//																				"sClass" : "cos_class",
//																				"aTargets" : [ 3 ]
//																			} 
																			
																			],
参考博客:http://blog.csdn.net/qq_30259339/article/details/51151552,解释一下 render: function(a, b, c, d) {}:

ajax表示请求的地址,columns要和返回的json数据中的字段对应,并和table中的th对应
"serverSide": true, //启用服务模式这个表示后台分页
aoColumns[]数组中表示后端返回的json数据(也和table中的th的数量一致,所以这块容易出错),mData表示json对象的属性名,orderable是否启动排序,sDefaultContent没有这个属性的情况下的默认值,sWidth表示th的宽度,render方法表示对接收到的json数据进行处理判断后显示,`  "render" : function(data, type, full, meta) {
                //return data == 1 ? '有效' : '<font color="red">无效</font>';
                if(data==1){
                    data ="<a href='#' class='upOrderStatus' data-id="+full.id+">有效</a>";
                }else{
                    data ="<a href='#' class='upOrderStatus' data-id="+full.id+"><font color='red'>无效</font></a>";
                }
                return   data;
            }`
data表示该json属性的值,type不清楚,full表示整个json对象,就是一整行的值,d不清楚,对data进行处理,再渲染

    注:设置背景的class样式为:

     .cos_class {
color: #FFA500;
}

最终效果如图:


    2.给datatables的某行某列添加点击事件:

     

 $('#sample_1 tbody').on('click','tr:nth-child(2) td:nth-child(2)', function (e) {
                  var name = $(this).text();
                  alert("给第2行第2列的JQuery datatables添加点击事件"+name);
             } );



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JQuery Datatables 中,渲染器(render)是一种用于修改单元格中数据显示方式的方法。使用渲染器,你可以将列中的数据以特定的方式呈现,例如格式化日期、显示图片等。在使用 Datatables 的时候,你可以将渲染器指定给一列,然后 Datatables 会在呈现表格时自动应用该渲染器。 渲染器是一个 JavaScript 函数,它接收四个参数: ```javascript function(data, type, row, meta) { // data: 单元格中的数据 // type: 描述单元格数据类型的字符串,可能的值为 'display', 'filter', 'sort', 'type' // row: 包含该单元格数据的行的数据对象 // meta: 包含该单元格数据的行和列的元数据对象 } ``` 其中 `data` 参数是单元格中的数据,`type` 参数是一个描述单元格数据类型的字符串。`type` 参数有四种可能的取值: - `display`: 用于在表格中显示的数据。 - `filter`: 用于过滤数据的数据。 - `sort`: 用于排序的数据。 - `type`: 用于定义数据类型的数据。 根据 `type` 参数的不同取值,渲染器可以返回不同的数据格式。例如,如果 `type` 参数为 `display`,渲染器可能会返回一个 HTML 字符串,用于在表格中呈现单元格数据;如果 `type` 参数为 `sort`,渲染器可以返回一个数字或字符串,用于在排序时比较单元格数据。 除了接收参数,渲染器还必须返回一个字符串或 DOM 元素,用于表示单元格中的数据。如果渲染器返回一个字符串,该字符串将显示在单元格中;如果渲染器返回一个 DOM 元素,该元素将作为单元格中的内容。 要为 Datatables 中的列指定渲染器,可以使用 `columnDefs` 选项。例如,以下代码将第一列的渲染器设置为一个将日期格式化为 `YYYY-MM-DD` 的函数: ```javascript $('#example').DataTable( { columnDefs: [ { targets: 0, render: function(data, type, row, meta) { if (type === 'display') { return moment(data).format('YYYY-MM-DD'); } else { return data; } } } ] }); ``` 以上代码使用了 moment.js 库来格式化日期。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值