基于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 相关文章推荐
往光标所在位置插入值的js代码
Sep 22 Javascript
Jquery通过Ajax方式来提交Form表单的具体实现
Nov 07 Javascript
jquery根据name属性查找的小例子
Nov 21 Javascript
jquery实现类似EasyUI的页面布局可改变左右的宽度
Sep 12 Javascript
原生js制作简单的数字键盘
Apr 24 Javascript
Node.js静态文件服务器改进版
Jan 10 Javascript
BootStrap中的table实现数据填充与分页应用小结
May 26 Javascript
Vue.js每天必学之过滤器与自定义过滤器
Sep 07 Javascript
vue.js实现仿原生ios时间选择组件实例代码
Dec 21 Javascript
JavaScript实现的商品抢购倒计时功能示例
Apr 17 Javascript
基于Require.js使用方法(总结)
Oct 26 Javascript
React服务端渲染原理解析与实践
Mar 04 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
全国FM电台频率大全 - 21 海南省
2020/03/11 无线电
for循环连续求和、九九乘法表代码
2012/02/20 PHP
php实现36进制与10进制转换功能示例
2017/01/10 PHP
php 调用ffmpeg获取视频信息的简单实现
2017/04/03 PHP
解决在laravel中auth建立时候遇到的问题
2019/10/15 PHP
jQuery 插件仿百度搜索框智能提示(带Value值)
2013/01/22 Javascript
用js实现小球的自由移动代码
2013/04/22 Javascript
jquery配合css简单实现返回顶部效果
2013/09/30 Javascript
jQuery判断当前点击的是第几个li的代码
2014/09/26 Javascript
js实现的全国省市二级联动下拉选择菜单完整实例
2015/08/17 Javascript
jQuery为某个div加入行样式
2017/06/09 jQuery
jquery 给动态生成的标签绑定事件的几种方法总结
2018/02/24 jQuery
Vue 中使用vue2-highcharts实现top功能的示例
2018/03/05 Javascript
关于AngularJS中ng-repeat不更新视图的解决方法
2018/09/30 Javascript
在layui.use 中自定义 function 的正确方法
2019/09/16 Javascript
Vue实现手机扫描二维码预览页面效果
2020/05/28 Javascript
Vue-cli assets SubDirectory及PublicPath区别详解
2020/08/18 Javascript
Array.filter中如何正确使用Async
2020/11/04 Javascript
JavaScript实现打字游戏
2021/02/19 Javascript
python网络爬虫采集联想词示例
2014/02/11 Python
Python求导数的方法
2015/05/09 Python
Django发送html邮件的方法
2015/05/26 Python
Python随机数用法实例详解【基于random模块】
2017/04/18 Python
Python遍历文件夹和读写文件的实现方法
2017/05/10 Python
django中media媒体路径设置的步骤
2019/11/15 Python
ubuntu 安装pyqt5和卸载pyQt5的方法
2020/03/24 Python
python函数调用,循环,列表复制实例
2020/05/03 Python
Keras自定义实现带masking的meanpooling层方式
2020/06/16 Python
python Pexpect模块的使用
2020/12/25 Python
python之openpyxl模块的安装和基本用法(excel管理)
2021/02/03 Python
Skyscanner波兰:廉价航班
2017/11/07 全球购物
优秀小学生家长评语
2014/01/30 职场文书
环境卫生工作汇报材料
2014/10/28 职场文书
前台接待岗位职责
2015/02/03 职场文书
拖欠货款起诉状
2015/05/20 职场文书
python glom模块的使用简介
2021/04/13 Python