基于jQuery的合并表格中相同文本的相邻单元格的代码

 更新时间:2011年04月06日 22:21:32   作者:  
有时候需要合并表格中相同文本的相邻单元格,需要的朋友可以参考下。

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>

相关文章

  • jQuery插件开发基础简单介绍

    jQuery插件开发基础简单介绍

    jquery插件开发基础:开发jQuery 插件的基本格式,开发全局函数的基本格式,接下来为您详细介绍,感兴趣的朋友可以了解哦
    2013-01-01
  • jquery给元素设置属性的简单方法

    jquery给元素设置属性的简单方法

    jquery是一个js插件库,现在很多前端开发人员都是使用它来操作dom的,对于dom操作,jquery提供了很多方法,这篇文章主要给大家介绍了关于jquery给元素设置属性的简单方法,需要的朋友可以参考下
    2023-06-06
  • 一个基于jquery的文本框记数器

    一个基于jquery的文本框记数器

    基于jquery的文本框记数器实现代码,需要的朋友可以参考下
    2012-09-09
  • jQuery判断checkbox是否选中的3种方法

    jQuery判断checkbox是否选中的3种方法

    这篇文章主要介绍了jQuery判断checkbox是否选中的3种方法,本文中的方法使用ID选择器实现,比网上其它的一些长篇大论的文章更加简练,需要的朋友可以参考下
    2014-08-08
  • jQuery仿Excel表格编辑功能的实现代码

    jQuery仿Excel表格编辑功能的实现代码

    Handsontable 是一个相当给力的 jQuery 插件,它实现了 HTML 页面中的表格编辑功能,并且是仿 Excel 的编辑效果。
    2013-05-05
  • jquery实现的分页显示功能示例

    jquery实现的分页显示功能示例

    这篇文章主要介绍了jquery实现的分页显示功能,涉及jQuery的ajax交互及页面元素属性动态操作相关实现技巧,需要的朋友可以参考下
    2019-08-08
  • jQuery登陆判断简单实现代码

    jQuery登陆判断简单实现代码

    登陆判断在实际应用中还是比较常见,在客户端执行判断可以减少服务器端的负担,感兴趣的朋友可以参考下
    2013-04-04
  • jQuery中appendTo()方法用法实例

    jQuery中appendTo()方法用法实例

    这篇文章主要介绍了jQuery中appendTo()方法用法,实例分析了appendTo()方法的功能、定义及把匹配的元素插入指定元素结尾的使用技巧,需要的朋友可以参考下
    2015-01-01
  • jquery中EasyUI实现同步树

    jquery中EasyUI实现同步树

    本文主要是给大家分享了一则使用EasyUI实现同步树的代码,主要是使用递归实现,非常实用的方法,推荐给小伙伴们。
    2015-03-03
  • jquery ajax请求实例深入解析

    jquery ajax请求实例深入解析

    jquery中封装了一些ajax请求的方法,很实用,本文将以此引入一个实例,对jquery中ajax请求的方法进行详细介绍,需要了解更多的朋友可以参考下
    2012-11-11

最新评论