layui根据条件显示列_layui table 根据条件改变更换表格颜色 高亮显示 数据筛选...

这篇博客介绍了如何使用layui库根据条件动态显示表格列,并实现表格颜色高亮和数据筛选。主要方法包括设置Jquery对象、转换数据表格以及隐藏字段等功能,提供了一种双击行触发回调函数,返回行数据的方法。
摘要由CSDN通过智能技术生成

var LayUIDataTable = (function() {var rowData ={};var$;functioncheckJquery () {if (!$) {

console.log("未获取jquery对象,请检查是否在调用ConvertDataTable方法之前调用SetJqueryObj进行设置!")return false;

}else return true;

}/**

* 转换数据表格。

* @param callback 双击行的回调函数,该回调函数返回三个参数,分别为:当前点击行的索引值、当前点击单元格的值、当前行数据

* @returns {Array} 返回当前数据表当前页的所有行数据。数据结构:

* [

* {字段名称1:{value:"当前字段值",cell:"当前字段所在单元格td对象",row:"当前字段所在行tr对象"}}

* ,{字段名称2:{value:"",cell:"",row:""}}

* ]

* @constructor*/

functionConvertDataTable (callback) {if (!checkJquery()) return;var dataList =[];var rowData ={};var trArr = $(".layui-table-body.layui-table-main tr");//行数据

if (!trArr || trArr.length == 0) {

console.log("未获取到相关行数据,请检查数据表格是否渲染完毕!");return;

}

$.each(trArr,function(index, trObj) {varcurrentClickRowIndex;varcurrentClickCellValue;

$(trObj).dblclick(function(e) {var returnData ={};var currentClickRow =$(e.currentTarget);

currentClickRowIndex= currentClickRow.data("index");

currentClickCellValue=e.target.innerHTML

$.each(dataList[currentClickRowIndex],function(key, obj) {

returnData[key]=obj.value;

});

callback(currentClickRowIndex, currentClickCellValue, returnData);

});var tdArrObj = $(trObj).find('td');

rowData={};//每行的单元格数据

$.each(tdArrObj, function(index_1, tdObj) {var td_field = $(tdObj).data("field");

rowData[td_field]={};

rowData[td_field]["value"] =$($(tdObj).html()).html();

rowData[td_field]["cell"] =$(tdObj);

rowData[td_field]["row"] =$(trObj);

})

dataList.push(rowData);

})returndataList;

}return{/**

* 设置JQuery对象,第一步操作。如果你没有在head标签里面引入jquery且未执行该方法的话,ParseDataTable方法、HideField方法会无法执行,出现找不到 $ 的错误。如果你是使用LayUI内置的Jquery,可以

* var $ = layui.jquery 然后把 $ 传入该方法

* @param jqueryObj

* @constructor*/SetJqueryObj:function(jqueryObj) {

$=jqueryObj;

}/**

* 转换数据表格*/, ParseDataTable: ConvertDataTable/**

* 隐藏字段

* @param fieldName 要隐藏的字段名(field名称)参数可为字符串(隐藏单列)或者数组(隐藏多列)

* @constructor*/, HideField:function(fieldName) {if (!checkJquery()) return;if (fieldName instanceofArray) {

$.each(fieldName,function(index, field) {

$("[data-field='" + field + "']").css('display', 'none');

})

}else if (typeof fieldName === 'string') {

$("[data-field='" + fieldName + "']").css('display', 'none');

}else{

}

}

}

})();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值