js合并table单元格实例

这里展示js合并table的单元格,代码亲测可行

后台采用springmvc搭建

Record实体类

public class Record {
    public String isp;
    public String large_area;
    public String province;
    public String name;
    public String age;
      ......   //省略get和set方法
 }

action方法

        @RequestMapping(value="/handlerList")
	public ModelAndView handlerList(HttpServletRequest request,
		HttpServletResponse response) throws Exception {
		List list = new ArrayList();
		Record record1 = new Record();
		record1.setIsp("CUC");
		record1.setLarge_area("广东");
		record1.setProvince("深圳");
		record1.setName("name1");
		record1.setAge("age1");

		Record record2 = new Record();
		record2.setIsp("CUC");
		record2.setLarge_area("广东");
		record2.setProvince("广州");
		record2.setName("name2");
		record2.setAge("age2");

		Record record3 = new Record();
		record3.setIsp("NU");
		record3.setLarge_area("江西");
		record3.setProvince("宜春");
		record3.setName("name3");
		record3.setAge("age3");

		Record record4 = new Record();
		record4.setIsp("NU");
		record4.setLarge_area("江西");
		record4.setProvince("宜春");
		record4.setName("name4");
		record4.setAge("age4");

		Record record5 = new Record();
		record5.setIsp("NU");
		record5.setLarge_area("江西");
		record5.setProvince("赣州");
		record5.setName("name5");
		record5.setAge("age5");

		Record record6 = new Record();
		record6.setIsp("NU");
		record6.setLarge_area("湖南");
		record6.setProvince("郴州");
		record6.setName("name6");
		record6.setAge("age6");

		list.add(record1);
		list.add(record2);
		list.add(record3);
		list.add(record4);
		list.add(record5);
		list.add(record6);
		Map map = new HashMap();
		map.put("list", list);
		return new ModelAndView("/showList",map);
	}

jsp页面展示

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript"src="asserts/js/jquery-1.7.2.min.js"></script>    
</head>
<body>
    <table id="testTable" width="100%" border="1">
			<thead>
			   	<tr align="center">
			     <th width="94" height="38">运营商</th>
			     <th width="198" height="38" >7天平均冗余带宽(G)</th>
			     <th width="216" height="38" >今天冗余带宽(G)</th>
			     <th width="196" height="38" >未来30天冗余带宽(G)</th>
			     <th width="263" height="38" >目前已用带宽(G)</th>
			   </tr>
	   		</thead>
	   		<thbody>
	   		     <c:forEach var="item" items="${list}" varStatus="status">
			    	<tr>
			    	   <td>${item.isp }</td>
			    		<td>${item.large_area}</td>
						<td>${item.province}</td>
						<td>${item.name}</td>
						<td>${item.age}</td>
			    	</tr>
			     </c:forEach>
	   		</thbody>
	   
	</table>   
</body>
</html>

可以看到未合并时效果如下:

jsp页面中添加相关的js片段后

<SCRIPT type="text/javascript">
$(document).ready(function () {

      table_rowspan("#testTable", 1);
      table_rowspan("#testTable", 2);
      table_rowspan("#testTable", 3);  
  })

//函数说明:合并指定表格(表格id为table_id)指定列(列数为table_colnum)的相同文本的相邻单元格
//参数说明:table_id 为需要进行合并单元格的表格的id。如在HTMl中指定表格 id="table1" ,此参数应为 #table1
//参数说明:table_colnum 为需要合并单元格的所在列。为数字,从最左边第一列为1开始算起。
        function table_rowspan(table_id, table_colnum) {
            table_firsttd = "";
            table_currenttd = "";
            table_SpanNum = 0;
            colnum_Obj = $(table_id + " tr td:nth-child(" + table_colnum + ")");
            colnum_Obj.each(function (i) {
                if (i == 0) {
                    table_firsttd = $(this);
                    table_SpanNum = 1;
                } else {
                    table_currenttd = $(this);
                    if (table_firsttd.text() == table_currenttd.text()) {
                        table_SpanNum++;
                        table_currenttd.hide(); //remove();
                        table_firsttd.attr("rowSpan", table_SpanNum);
                    } else {
                        table_firsttd = $(this);
                        table_SpanNum = 1;
                    }
                }
            });
        }
        
        
        //函数说明:合并指定表格(表格id为table_id)指定行(行数为table_rownum)的相同文本的相邻单元格
        //参数说明:table_id 为需要进行合并单元格的表格id。如在HTMl中指定表格 id="table1" ,此参数应为 #table1
        //参数说明:table_rownum 为需要合并单元格的所在行。其参数形式请参考jQuery中nth-child的参数。
        //          如果为数字,则从最左边第一行为1开始算起。
        //          "even" 表示偶数行
        //          "odd" 表示奇数行
        //          "3n+1" 表示的行数为1、4、7、10.......
        //参数说明:table_maxcolnum 为指定行中单元格对应的最大列数,列数大于这个数值的单元格将不进行比较合并。
        //          此参数可以为空,为空则指定行的所有单元格要进行比较合并。
        function table_colspan(table_id, table_rownum, table_maxcolnum) {
            if (table_maxcolnum == void 0) {
                table_maxcolnum = 0;
            }
            table_firsttd = "";
            table_currenttd = "";
            table_SpanNum = 0;
            $(table_id + " tr:nth-child(" + table_rownum + ")").each(function (i) {
                row_Obj = $(this).children();
                row_Obj.each(function (i) {
                    if (i == 0) {
                        table_firsttd = $(this);
                        table_SpanNum = 1;
                    } else if ((table_maxcolnum > 0) && (i > table_maxcolnum)) {
                        return "";
                    } else {
                        table_currenttd = $(this);
                        if (table_firsttd.text() == table_currenttd.text()) {
                            table_SpanNum++;
                            table_currenttd.hide(); //remove();
                            table_firsttd.attr("colSpan", table_SpanNum);
                        } else {
                            table_firsttd = $(this);
                            table_SpanNum = 1;
                        }
                   }
                });
            });
        }
     
    </SCRIPT>

效果如下,可以看到字段相同的列已经进行合并了:

js合并table单元格实例

时间: 2024-08-28 09:42:46

js合并table单元格实例的相关文章

js合并table单元格(拼table的时候并不知道具体几行几列)

Sys.Application.add_load(function () { var tab = document.getElementById("ctl00_ContentPlaceHolder1_viewcontrolTT_Repeater1_ctl00_viewcontrolTT_grid"); //要合并的tableID if (!tab) { alert("未获取到表格!"); } else { //从第二行开始,排除标题行 var startRow =

js 按相同行合并table单元格

查到的合并的代码 1 function combineRows(tableid) { 2 var tab = document.getElementById(tableid); 3 var maxcol = 4, count, value, start; 4 for (var col = maxcol; col >= 0; col--) { 5 count = 1; 6 value = ""; 7 for (var i = 1; i < tab.rows.length; i

OpenXml合并Table单元格(合并性别列)

using DocumentFormat.OpenXml; using DocumentFormat.OpenXml.Packaging; using DocumentFormat.OpenXml.Wordprocessing; using OpenXML.Model; using System; using System.Collections.Generic; namespace OpenXML { class Program { //表格数据 public static List<List

Javascript 动态合并table单元格

废话不说直接上代码 <!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=&quo

jquery实现的拖动可以调整table单元格大小代码实例

jquery实现的拖动可以调整table单元格大小代码实例: 本章节介绍一下如果利用jquery实现表格单元格可以通过鼠标拖动调整大小的效果,当然如果让我们完全写代码的话,可能会比较的复杂,不过有现成的插件可以使用,只要简单的几个步骤就可以实现我们的要求. 一.引入相关库文件: 要使用相关插件,那就必须要引入相关的代码文件,如下: <script src="/js/jquery-1.8.0.min.js" type="text/javascript">&

CSS+JS鼠标悬停单元格变色

又一款鼠标悬停表格单元格,表格变色的实例效果,运用了CSS和JS两者技术的结合,因些兼容性非常好,而且易于控制,代码修改方便,跟表格读取动态数据没有任何关系,比较方便. <html><head><title>鼠标悬停单元格变色</title><meta http-equiv="content-Type" content="text/html;charset=gb2312"><style type=&q

JavaScript提高:004:JS获取Gridview单元格时层级问题

使用javascript获取页面中元素的属性,或者对元素进行操作.这种使用是非常多的.不过对于获取那些在页面中单一的元素,诸如,页面上的某个文本框,下拉列表,按钮等可以直接用ID获取到的这种元素,用法自然简单.这里就不多说了,太简单了.一般比较复杂的是,获取元素中的元素,比如动态生成的那些元素.这里就拿表格中的元素为例吧.知道如何获取表格中的单元格内的元素了,其他的复杂元素也就不在话下了.下面举个简单的例子,获取GridView的单元格元素.平常使用比较多的也就是这种的.行中有个操作按钮,然后对

Latex 制作斜线表头、合并行列单元格

这篇文章主要给出一些 Latex 制作斜线表头.合并行单元格与合并列单元格的 demo 演示 latex:制作斜线表头 \begin{tabular}{|l|ccc|} \hline \diagbox{Time}{Room}{Day} & Mon & Tue & Wed \\ \hline Morning & used & used & \\ Afternoon & & used & used \\ \hline \end{tabul

datawindow合并相同单元格

在dataobject菜单rows--->supress repeating values找到要合并的列 缺陷:不能实现居中的功能! datawindow合并相同单元格,布布扣,bubuko.com