基于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 相关文章推荐
javascript-TreeView父子联动效果保持节点状态一致
Aug 12 Javascript
AeroWindow 基于JQuery的弹出窗口插件
Jun 27 Javascript
新发现一个骗链接的方法(js读取cookies)
Jan 11 Javascript
jQuery图片播放8款精美插件分享
Feb 17 Javascript
js获取指定日期前后的日期代码
Aug 20 Javascript
设置checkbox为只读(readOnly)的两种方式
Oct 11 Javascript
JavaScript中的对象与JSON
Jul 03 Javascript
JavaScript 随机验证码的生成实例代码
Sep 22 Javascript
微信小程序 Button 组件详解及简单实例
Jan 10 Javascript
js实现1,2,3,5数字按照概率生成
Sep 12 Javascript
vue.js整合mint-ui里的轮播图实例代码
Dec 27 Javascript
纯javascript实现选择框的全选与反选功能
Apr 08 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
Windows中安装Apache2和PHP4权威指南
2006/11/18 PHP
PHP浮点比较大小的方法
2016/02/14 PHP
BOOM vs RR BO3 第一场2.13
2021/03/10 DOTA
javascript iframe编程相关代码
2009/12/28 Javascript
JQUERY操作JSON实例代码
2010/02/09 Javascript
鼠标滑上去后图片放大浮出效果的js代码
2011/05/28 Javascript
编写高效jQuery代码的4个原则和5个技巧
2014/04/24 Javascript
Js+Jq获取URL参数的集中方法示例代码
2014/05/20 Javascript
PHP中使用微秒计算脚本执行时间例子
2014/11/19 Javascript
jQuery中parents()方法用法实例
2015/01/07 Javascript
javascript实现详细时间提醒信息效果的方法
2015/03/11 Javascript
js基于cookie方式记住返回页面用法示例
2016/05/27 Javascript
javascript闭包概念简单解析(推荐)
2016/06/03 Javascript
angularJS深拷贝详解
2017/03/23 Javascript
node.js调用Chrome浏览器打开链接地址的方法
2017/05/17 Javascript
BootStrap的双日历时间控件使用
2017/07/25 Javascript
JavaScript实现焦点进入文本框内关闭输入法的核心代码
2017/09/20 Javascript
Es6 Generator函数详细解析
2018/02/24 Javascript
原生JS利用transform实现banner的无限滚动示例代码
2020/06/15 Javascript
[00:52]玛尔斯技能全介绍
2019/03/06 DOTA
Python爬取个人微信朋友信息操作示例
2018/08/03 Python
学习python的前途 python挣钱
2019/02/27 Python
PyTorch实现更新部分网络,其他不更新
2019/12/31 Python
解决Python paramiko 模块远程执行ssh 命令 nohup 不生效的问题
2020/07/14 Python
Foot Locker德国官方网站:美国运动服和鞋类零售商
2018/11/01 全球购物
乐高官方旗舰店:LEGO积木玩具
2019/04/06 全球购物
俄罗斯一家时尚女装商店:Charuel
2019/12/04 全球购物
加拿大著名的奢侈品购物网站:SSENSE(支持中文)
2020/06/25 全球购物
服务理念标语
2014/06/18 职场文书
片区教研活动总结
2014/07/02 职场文书
销售经理工作失职检讨书
2014/10/24 职场文书
打架检讨书
2015/01/27 职场文书
交通事故协议书范本
2016/03/19 职场文书
同学会演讲稿
2019/04/02 职场文书
Python中zipfile压缩包模块的使用
2021/05/14 Python
【海涛dota】偶遇拉娜娅 质量局德鲁伊第一视角解说
2022/04/01 DOTA