`

转HTML网页表格相同行自动合并

阅读更多
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<script type="text/javascript" src="file:///D|/XianProject/js/jquery.1.3.2.js"></script>

<script language="javascript">
//函数说明:合并指定表格(表格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; 
                } 
            } 
        }); 
    }); 
}

</script>

<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>


<body>

<table width="100%" border="1" id="spdata">
  <tr>
    <td>1</td>
    <td>2</td>
    <td>a</td>
    <td>f</td>
    <td>e</td>
  </tr>
  <tr>
    <td>1</td>
    <td>2</td>
    <td>b</td>
    <td>g</td>
    <td>e</td>
  </tr>
  <tr>
    <td>1</td>
    <td>3</td>
    <td>c</td>
    <td>h</td>
    <td>e</td>
  </tr>
  <tr>
    <td>1</td>
    <td>3</td>
    <td>d</td>
    <td>k</td>
    <td>e</td>
  </tr>
  <tr>
    <td>1</td>
    <td>4</td>
    <td>e</td>
    <td>m</td>
    <td>e</td>
  </tr>
</table>

</body>
</html>
分享到:
评论

相关推荐

    列表多行多列合并单元格

    综上所述,实现列表多行多列合并单元格涉及到HTML表格的基本操作,以及JavaScript动态计算和设置`colspan`和`rowspan`属性。在开发过程中,还需要考虑交互性、响应式设计和性能优化,确保在各种环境下都能提供良好的...

    【JavaScript源代码】vue Element-ui表格实现树形结构表格.docx

    当表格的每一行(row)包含 `children` 字段时,组件会自动识别并处理这些数据,将其呈现为树状结构。为了正确渲染树形数据,必须指定 `row-key` 属性,这通常用于唯一标识每一行数据。在这个例子中,`row-key` 被...

    html+css+js面试题

    哪一个标记用于使HTML文档中表格里的单元格在同行进行合并? - **知识点**:`colspan` 属性用于合并表格中的单元格,使其跨越多个列。例如,`&lt;td colspan="2"&gt;...&lt;/td&gt;` 会使单元格跨过两个列。 #### 9. 使用以下...

    td单元格合并时 td宽度问题

    在处理HTML表格布局时,经常需要对表格中的单元格(td)进行合并。单元格合并通常使用colspan或rowspan属性实现。当单元格合并后,原本为每个单元格单独设置的宽度可能会出现问题,尤其是当某些行的内容长度不一时。...

    WondersharePDFelementProfessional8.3.6.1236x64一款功能十分强大的PDF编辑器

    不仅如此,您还可以将PDF转换成可编辑的文档格式,并且还可以将各种文档合并成一个PDF文档。该软件功能非常全面,也非常容易使用。 软件截图: 软件功能: PDF文件编辑。打开PDF文档并打开PDF编辑模式,以修改PDF...

    文件目录对比工具

    1. 文本差异显示:通过高亮显示不同行或字符,清晰展示两个文件的异同。 2. 差异合并:允许用户选择并合并两个文件的修改,生成一个新的文件。 3. 快速定位:通过搜索功能,快速定位到特定的差异位置。 4. 配对比较...

    GridView 72般绝技

    24. 表格合并:合并相同值的单元格,使数据更清晰。 25. 数据行模板:根据数据项的值,动态改变行的样式或内容。 26. 图片列:在列中显示数据库存储的图片。 27. 导出:导出GridView数据到Excel、CSV等格式。 28...

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    下面的表格概要列出了元素的规则: 2.元素规则表: Symbol 含义 举例 #PCDATA 包含字符或文本数据 (#PCDATA)&gt; 元素MYFILE包含一个文本数据 #PCDATA, element-name 包含文本和其它子元素 (#PCDTATA,TITLE)&gt; MYFILE...

    Sublime Text

    你可以在同一行或不同行进行多处修改,甚至可以进行多列编辑,使得调整表格或列式数据变得极其简单。 2. **实时预览**:编辑器提供了即时的代码预览功能,可以在编辑代码的同时看到效果,这对于前端开发者来说非常...

Global site tag (gtag.js) - Google Analytics