基于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 相关文章推荐
xheditor与validate插件冲突的解决方案
Apr 15 Javascript
基于Jquery的仿照flash放大图片效果代码
Mar 16 Javascript
jQuery怎么解析Json字符串(Json格式/Json对象)
Aug 09 Javascript
编写js扩展方法判断一个数组中是否包含某个元素
Nov 08 Javascript
Javascript中With语句用法实例
May 14 Javascript
zepto中使用swipe.js制作轮播图附swipeUp,swipeDown不起效果问题
Aug 27 Javascript
jquery中checkbox使用方法简单实例演示
Nov 24 Javascript
原生js实现验证码功能
Mar 16 Javascript
JS实现异步上传压缩图片
Apr 22 Javascript
React 父子组件通信的实现方法
Dec 05 Javascript
vue自定义组件(通过Vue.use()来使用)即install的用法说明
Aug 11 Javascript
jQuery实现动态加载瀑布流
Sep 01 jQuery
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 无限级缓存的类的扩展
2009/03/16 PHP
php inc文件使用的风险和注意事项
2013/11/12 PHP
YII实现分页的方法
2014/07/09 PHP
Mac OS下配置PHP+MySql环境
2015/02/25 PHP
PHP模板引擎Smarty自定义变量调解器用法
2016/04/11 PHP
PHP实现微信模拟登陆并给用户发送消息的方法【文字,图片,图文】
2017/06/29 PHP
PHP数据库操作四:mongodb用法分析
2017/08/16 PHP
node.js中使用node-schedule实现定时任务实例
2014/06/03 Javascript
一个不错的字符串转码解码函数(自写)
2014/07/31 Javascript
jQuery不使用插件及swf实现无刷新文件上传
2014/12/08 Javascript
JS使用ajax方法获取指定url的head信息中指定字段值的方法
2015/03/24 Javascript
浅谈NodeJS中require路径问题
2015/05/07 NodeJs
理解javascript定时器中的setTimeout与setInterval
2016/02/23 Javascript
JS判断指定dom元素是否在屏幕内的方法实例
2017/01/23 Javascript
如何正确理解javascript的模块化
2017/03/02 Javascript
详解mpvue开发小程序小总结
2018/07/25 Javascript
Mint UI组件库CheckList使用及踩坑总结
2018/12/20 Javascript
vue中$refs, $emit, $on, $once, $off的使用详解
2019/05/26 Javascript
微信小程序动态添加和删除组件的现实
2020/02/28 Javascript
vue开发移动端底部导航条功能
2020/04/08 Javascript
jquery实现轮播图特效
2020/04/12 jQuery
浅谈django model的get和filter方法的区别(必看篇)
2017/05/23 Python
python实现随机漫步算法
2018/08/27 Python
selenium+python自动化测试之鼠标和键盘事件
2019/01/23 Python
django中账号密码验证登陆功能的实现方法
2019/07/15 Python
基于numpy中的expand_dims函数用法
2019/12/18 Python
pytorch实现从本地加载 .pth 格式模型
2020/02/14 Python
利用CSS3实现动态的二级三级菜单效果实例源码
2017/01/04 HTML / CSS
通用求职信范文模板分享
2013/12/27 职场文书
自行车广告词大全
2014/03/21 职场文书
党员自我评议个人对照检查材料
2014/09/16 职场文书
助学金感谢信
2015/01/20 职场文书
大学生学期个人总结
2015/02/12 职场文书
运动会观后感
2015/06/09 职场文书
2016五一劳动节慰问信
2015/11/30 职场文书
整理Python中常用的conda命令操作
2021/06/15 Python