基于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 相关文章推荐
Grid得到选择行数据的方法总结
Jan 17 Javascript
浅析JavaScript中的同名标识符优先级
Dec 06 Javascript
JS实现随页面滚动显示/隐藏窗口固定位置元素
Feb 26 Javascript
AngularJS在IE8的不支持的解决方法
May 13 Javascript
JavaScript手机振动API
Jun 11 Javascript
JS动态修改网页body的背景色实例代码
Oct 07 Javascript
js推箱子小游戏步骤代码解析
Jan 10 Javascript
jQuery替换节点元素的操作方法
Mar 18 jQuery
layui 解决form表单点击无反应的问题
Oct 25 Javascript
vue element 中的table动态渲染实现(动态表头)
Nov 21 Javascript
JavaScript享元模式原理与用法实例详解
Mar 09 Javascript
vue-cli单页面预渲染seo-prerender-spa-plugin操作
Aug 10 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
1.PHP简介
2006/10/09 PHP
提高PHP性能的编码技巧以及性能优化详细解析
2013/08/24 PHP
字符串长度函数strlen和mb_strlen的区别示例介绍
2014/09/09 PHP
smarty中英文多编码字符截取乱码问题解决方法
2014/10/28 PHP
PHP SPL标准库之接口(Interface)详解
2015/05/11 PHP
js 加载并解析XML字符串的代码
2009/12/13 Javascript
Javascript 匿名函数及其代码模式原理
2010/03/19 Javascript
javascript 在firebug调试时用console.log的方法
2012/05/10 Javascript
动态加载jquery库的方法
2014/02/12 Javascript
AngularJS通过$sce输出html的方法
2016/09/22 Javascript
vue-loader教程介绍
2017/06/14 Javascript
原生js 封装get ,post, delete 请求的实例
2017/08/11 Javascript
angularjs利用directive实现移动端自定义软键盘的示例
2017/09/20 Javascript
基于脚手架创建Vue项目实现步骤详解
2020/08/03 Javascript
[02:22]《新闻直播间》2017年08月14日
2017/08/15 DOTA
[57:59]EG vs Secret 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
Django视图之ORM数据库查询操作API的实例
2017/10/27 Python
python实现12306抢票及自动邮件发送提醒付款功能
2018/03/08 Python
python验证身份证信息实例代码
2019/05/06 Python
python lambda表达式在sort函数中的使用详解
2019/08/28 Python
解决pycharm上的jupyter notebook端口被占用问题
2019/12/17 Python
python判断变量是否为int、字符串、列表、元组、字典的方法详解
2020/02/13 Python
django queryset相加和筛选教程
2020/05/18 Python
HTML4和HTML5之间除了相似以外的10个主要不同
2012/12/13 HTML / CSS
英国女性时尚鞋类的潮流制造者:Koi Footwear
2018/10/19 全球购物
实习自荐信
2013/10/13 职场文书
硕士研究生自我鉴定
2013/11/08 职场文书
区优秀教师事迹材料
2014/02/10 职场文书
2014年政风行风评议工作总结
2014/10/21 职场文书
高考升学宴答谢词
2015/01/20 职场文书
活动总结模板大全
2015/05/11 职场文书
2016廉洁教育心得体会
2016/01/20 职场文书
公文写作指导之倡议书!
2019/07/03 职场文书
html+css实现文字折叠特效实例
2021/06/02 HTML / CSS
Python matplotlib绘制雷达图
2022/04/13 Python
处理canvas绘制图片模糊问题
2022/05/11 Javascript