//定义一个自动创建表格的函数
//ThArr表格的头数据,TdArr表格的单元格数据
function cTbl(ele,ThArr,TdArr){
ele.children('table').remove();
var _table=$('
');
var _thead=$('');
var _tbody=$('');
var ThArray=new Array(); //设置th的数组
var TrArray=new Array(); //设置tr的数组
var TdArray=new Array(); //设置td的数组
var TdLength; //获取单元格个数
var TrLength; //获取行数
TdLength=TdArr.length;
TrLength=Math.ceil(TdLength/ThArr.length);
// 给每个th设置值
for(var i=0;i"+ThArr[i]+"");
}
// 给每个td设置值
for(var i=0;i"+TdArr[i]+"");
}
//设置tr
for(var i=0;i");
}
//将td以col个赋给tr
var n=0;
for(var i=0;i len)
{
_str = data.slice(0, len)+'...';
return _str;
}
return data;
}
// 使用构造函数模式创建表格选项
function TblOpt(tblHd, tblBody, hdData, bodyData) {
this.eleHd = tblHd; // 获取表头容器
this.eleBody = tblBody; // 获取body的容器
this.hdData = hdData; // 获取表格头部数据
this.bodyData = bodyData; // 获取表格body内的数据
// 创建表格
this.createTbl = function () {
cTbl(this.eleHd, this.hdData, this.bodyData);
cTbl(this.eleBody, this.hdData, this.bodyData);
// 使两个表格的宽度一致
var bodyWidth = this.eleBody.find('table').eq(0).width();
this.eleHd.find('table').eq(0).width(bodyWidth);
// 将表格上下对齐
var scrollX = this.eleBody.scrollLeft();
this.eleHd.find('table').css('left', -scrollX + 'px');
};
// 使两个表格同步滚动
this.scrollSame = function () {
// 将表格上下对齐
var scrollX = this.eleBody.scrollLeft();
this.eleHd.find('table').css('left', -scrollX + 'px');
};
// 浏览器窗口大小改变表格对齐
this.tblResize = function () {
var bodyWidth = this.eleBody.find('table').eq(0).width();
this.eleHd.find('table').eq(0).width(bodyWidth);
};
// 更新表格的数据
this.reflushTbl = function (newHdData, newBodyData) {
this.hdData = newHdData;
this.bodyData = newBodyData;
this.createTbl(); // 调用生成新的表格
};
// 给表格被点击的位置添加背景色
this.addBg = function (trIndex) {
// 移出表格行的背景
this.eleHd.find('tbody').find('tr').removeClass('tbl-tr-bg');
this.eleBody.find('tbody').find('tr').removeClass('tbl-tr-bg');
// 给特定行添加背景
this.eleHd.find('tbody').find('tr').eq(trIndex).addClass('tbl-tr-bg');
this.eleBody.find('tbody').find('tr').eq(trIndex).addClass('tbl-tr-bg');
};
// 自动调用生成表格
this.createTbl();
}