基于jQuery的合并表格中相同文本的相邻单元格的代码


Posted in Javascript onApril 06, 2011

ONE

已经生成的数据表格大致内容如下:

地区 地区 商品代码 商品名称 数量 有效期至 距效期(月) 产品批号 规格 单位 条形码
广东 深圳 00028 红花油              
广东 深圳 00028 红花油              
广东 深圳 00028 红花油              
广东 广州 00027 白花油              
广东 广州 00028 红花油              
广东 深圳 00028 红花油              
广东 深圳 00028 红花油              
广东 深圳 00028 红花油              
广东 深圳 00028 红花油              

需要将前四列具有相同文本的相邻单元格进行自动合并,合并后如下:

地区 地区 商品代码 商品名称 数量 有效期至 距效期(月) 产品批号 规格 单位 条形码
广东 深圳 00028 红花油              
             
             
广州 00027 白花油              
00028 红花油              
深圳              
             
             
             

1、在html的head中引入jQuery

2、添加合并单元格的函数

//函数说明:合并指定表格(表格id为_w_table_id)指定列(列数为_w_table_colnum)的相同文本的相邻单元格 
//参数说明:_w_table_id 为需要进行合并单元格的表格的id。如在HTMl中指定表格 id="data" ,此参数应为 #data 
//参数说明:_w_table_colnum 为需要合并单元格的所在列。为数字,从最左边第一列为1开始算起。 
function _w_table_rowspan(_w_table_id,_w_table_colnum){ 
_w_table_firsttd = ""; 
_w_table_currenttd = ""; 
_w_table_SpanNum = 0; 
_w_table_Obj = $(_w_table_id + " tr td:nth-child(" + _w_table_colnum + ")"); 
_w_table_Obj.each(function(i){ 
if(i==0){ 
_w_table_firsttd = $(this); 
_w_table_SpanNum = 1; 
}else{ 
_w_table_currenttd = $(this); 
if(_w_table_firsttd.text()==_w_table_currenttd.text()){ 
_w_table_SpanNum++; 
_w_table_currenttd.hide(); //remove(); 
_w_table_firsttd.attr("rowSpan",_w_table_SpanNum); 
}else{ 
_w_table_firsttd = $(this); 
_w_table_SpanNum = 1; 
} 
} 
}); 
} //函数说明:合并指定表格(表格id为_w_table_id)指定行(行数为_w_table_rownum)的相同文本的相邻单元格 
//参数说明:_w_table_id 为需要进行合并单元格的表格id。如在HTMl中指定表格 id="data" ,此参数应为 #data 
//参数说明:_w_table_rownum 为需要合并单元格的所在行。其参数形式请参考jQuery中nth-child的参数。 
// 如果为数字,则从最左边第一行为1开始算起。 
// "even" 表示偶数行 
// "odd" 表示奇数行 
// "3n+1" 表示的行数为1、4、7、10. 
//参数说明:_w_table_maxcolnum 为指定行中单元格对应的最大列数,列数大于这个数值的单元格将不进行比较合并。 
// 此参数可以为空,为空则指定行的所有单元格要进行比较合并。 
function _w_table_colspan(_w_table_id,_w_table_rownum,_w_table_maxcolnum){ 
if(_w_table_maxcolnum == void 0){_w_table_maxcolnum=0;} 
_w_table_firsttd = ""; 
_w_table_currenttd = ""; 
_w_table_SpanNum = 0; 
$(_w_table_id + " tr:nth-child(" + _w_table_rownum + ")").each(function(i){ 
_w_table_Obj = $(this).children(); 
_w_table_Obj.each(function(i){ 
if(i==0){ 
_w_table_firsttd = $(this); 
_w_table_SpanNum = 1; 
}else if((_w_table_maxcolnum>0)&&(i>_w_table_maxcolnum)){ 
return ""; 
}else{ 
_w_table_currenttd = $(this); 
if(_w_table_firsttd.text()==_w_table_currenttd.text()){ 
_w_table_SpanNum++; 
_w_table_currenttd.hide(); //remove(); 
_w_table_firsttd.attr("colSpan",_w_table_SpanNum); 
}else{ 
_w_table_firsttd = $(this); 
_w_table_SpanNum = 1; 
} 
} 
}); 
}); 
}

3、在html的head中调用合并函数合并单元格
<script type="text/javascript"><!-- 
$(document).ready(function(){ 
_w_table_rowspan("#spdata",4); 
_w_table_rowspan("#spdata",3); 
_w_table_rowspan("#spdata",2); 
_w_table_rowspan("#spdata",1); 
}); 
// --> 
</script>
Javascript 相关文章推荐
Jquery获取元素的父容器对象示例代码
Feb 10 Javascript
原生js实现fadein 和 fadeout淡入淡出效果
Jun 05 Javascript
jQuery获取上传文件的名称的正则表达式
May 21 Javascript
jQuery实现鼠标划过添加和删除class的方法
Jun 26 Javascript
jQuery+CSS实现滑动的标签分栏切换效果
Dec 17 Javascript
Javascript中神奇的this
Jan 20 Javascript
js+css实现select的美化效果
Mar 24 Javascript
深入学习 JavaScript中的函数调用
Mar 23 Javascript
BootStrap 页签切换失效的解决方法
Aug 17 Javascript
前端html中jQuery实现对文本的搜索功能并把搜索相关内容显示出来
Nov 14 jQuery
ng-zorro-antd 入门初体验
Dec 03 Javascript
Vue的双向数据绑定实现原理解析
Feb 17 Javascript
jQuery LigerUI 插件介绍及使用之ligerDrag和ligerResizable示例代码打包
Apr 06 #Javascript
jQuery中绑定事件的命名空间详解
Apr 05 #Javascript
jQuery下通过$.browser来判断浏览器.
Apr 05 #Javascript
Jquery判断IE6等浏览器的代码
Apr 05 #Javascript
jquery load()在firefox(火狐)下显示不正常的解决方法
Apr 05 #Javascript
JQuery中$之选择器用法介绍
Apr 05 #Javascript
关于window.pageYOffset和document.documentElement.scrollTop
Apr 05 #Javascript
You might like
php 缓存函数代码
2008/08/27 PHP
一个PHP的QRcode类与大家分享
2011/11/13 PHP
图解找出PHP配置文件php.ini的路径的方法
2014/08/20 PHP
怎样搭建PHP开发环境
2015/07/28 PHP
25个优雅的jQuery Tooltip插件推荐
2011/05/25 Javascript
JavaScript 作用域链解析
2014/11/13 Javascript
js中的事件捕捉模型与冒泡模型实例分析
2015/01/10 Javascript
AngularJS 日期格式化详解
2015/12/23 Javascript
易被忽视的js事件问题总结
2016/05/14 Javascript
jquery点击切换背景色的简单实例
2016/08/25 Javascript
JS正则子匹配实例分析
2016/12/22 Javascript
原生js实现图片放大缩小计时器效果
2017/01/20 Javascript
利用nodejs监控文件变化并使用sftp上传到服务器
2017/02/18 NodeJs
sortable+element 实现表格行拖拽的方法示例
2019/06/07 Javascript
JavaScript接口实现方法实例分析
2020/05/16 Javascript
vue动画—通过钩子函数实现半场动画操作
2020/08/09 Javascript
JS实现购物车基本功能
2020/11/08 Javascript
Python装饰器decorator用法实例
2014/11/10 Python
Python2.7简单连接与操作MySQL的方法
2016/04/27 Python
PyQt5打开文件对话框QFileDialog实例代码
2018/02/07 Python
Python 实现交换矩阵的行示例
2019/06/26 Python
利用python实现.dcm格式图像转为.jpg格式
2020/01/13 Python
pytorch torchvision.ImageFolder的用法介绍
2020/02/20 Python
Python接口自动化判断元素原理解析
2020/02/24 Python
自定义Django默认的sitemap站点地图样式
2020/03/04 Python
Python startswith()和endswith() 方法原理解析
2020/04/28 Python
浅谈CSS3 box-sizing 属性 有趣的盒模型
2019/04/02 HTML / CSS
HTML5拖拉上传文件的简单实例
2017/01/11 HTML / CSS
详解HTML5之pushstate、popstate操作history,无刷新改变当前url
2017/03/15 HTML / CSS
数学系毕业生的自我评价
2014/01/10 职场文书
大学生职业生涯规划书模板
2014/01/18 职场文书
应急管理培训方案
2014/06/12 职场文书
毕业生找工作求职信
2014/08/05 职场文书
2014年销售工作总结范文
2014/12/01 职场文书
Python读取文件夹下的所有文件实例代码
2021/04/02 Python
死磕 java同步系列之synchronized解析
2021/06/28 Java/Android