基于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中重写jQuery对象的方法实例教程
Aug 25 Javascript
JavaScript实现数字数组正序排列的方法
Apr 06 Javascript
ajax+jQuery实现级联显示地址的方法
May 06 Javascript
JS添加或修改控件的样式(Class)实现方法
Oct 15 Javascript
Yarn的安装与使用详细介绍
Oct 25 Javascript
原生js实现淘宝购物车功能
Jun 23 Javascript
vue 下列表侧滑操作实例代码详解
Jul 24 Javascript
浅谈发布订阅模式与观察者模式
Apr 09 Javascript
详解element-ui中el-select的默认选择项问题
Aug 02 Javascript
Vue过渡效果之CSS过渡详解(结合transition,animation,animate.css)
Feb 05 Javascript
JavaScript canvas动画实现时钟效果
Feb 10 Javascript
vue中后端做Excel导出功能返回数据流前端的处理操作
Sep 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
example2.php
2006/10/09 PHP
基于laravel where的高级使用方法
2019/10/10 PHP
jquery 查找iframe父级页面元素的实现代码
2011/08/28 Javascript
利用jquery操作Radio方法小结
2014/10/20 Javascript
学习JavaScript设计模式之观察者模式
2020/04/22 Javascript
详解springmvc 接收json对象的两种方式
2016/12/06 Javascript
jquery实现多次上传同一张图片
2017/01/09 Javascript
angular+ionic 的app上拉加载更新数据实现方法
2017/01/16 Javascript
Webpack打包css后z-index被重新计算的解决方法
2017/06/18 Javascript
js实现可以点击收缩或张开的悬浮窗
2017/09/18 Javascript
js事件触发操作实例分析
2019/06/21 Javascript
微信小程序实现类似微信点击语音播放效果
2020/03/30 Javascript
vue项目中引入Sass实例方法
2019/08/27 Javascript
php使用递归与迭代实现快速排序示例
2014/01/23 Python
python中实现迭代器(iterator)的方法示例
2017/01/19 Python
关于反爬虫的一些简单总结
2017/12/13 Python
Python实现连接postgresql数据库的方法分析
2017/12/27 Python
python spyder中读取txt为图片的方法
2018/04/27 Python
pow在python中的含义及用法
2019/07/11 Python
Python实现数值积分方式
2019/11/20 Python
Python 面向对象之封装、继承、多态操作实例分析
2019/11/21 Python
Python Numpy 控制台完全输出ndarray的实现
2020/02/19 Python
解决Django提交表单报错:CSRF token missing or incorrect的问题
2020/03/13 Python
华为慧通面试题
2012/09/11 面试题
环境工程大学生个人的自我评价
2013/10/08 职场文书
环保建议书作文
2014/03/12 职场文书
担保书格式及范文
2014/04/01 职场文书
社区两委对照检查材料
2014/08/23 职场文书
店长岗位职责
2015/02/11 职场文书
团员个人总结
2015/02/26 职场文书
解放思想大讨论活动总结
2015/05/09 职场文书
校运会加油稿大全
2015/07/22 职场文书
大学运动会加油稿
2015/07/22 职场文书
Django程序的优化技巧
2021/04/29 Python
Requests什么的通通爬不了的Python超强反爬虫方案!
2021/05/20 Python
SQL Server作业失败:无法确定所有者是否有服务器访问权限的解决方法
2021/06/30 SQL Server