`
guirudaoge
  • 浏览: 18804 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

js 实现根据数组分组动态生成table(合并相同项)

阅读更多
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title> New Document </title>
  <script>
  //xxbh:学校编号,bjbh:班级编号,xx:姓名
	var arrJson=[
		{'xxbh':'1001','bjbh':'0801','xx':'李四'},{'xxbh':'1001','bjbh':'0802','xx':'张三'},
		{'xxbh':'1003','bjbh':'0803','xx':'王五'},{'xxbh':'1003','bjbh':'0804','xx':'晶晶'},
		{'xxbh':'1005','bjbh':'0701','xx':'亮亮'},{'xxbh':'1002','bjbh':'0701','xx':'明敏'},
		{'xxbh':'1005','bjbh':'0701','xx':'张灿'},{'xxbh':'1002','bjbh':'0801','xx':'小白'},
		{'xxbh':'1005','bjbh':'0802','xx':'小胖'},{'xxbh':'1002','bjbh':'0901','xx':'小丽'},
		{'xxbh':'1003','bjbh':'0901','xx':'阿宝'},{'xxbh':'1004','bjbh':'0901','xx':'王泰'},
		{'xxbh':'1001','bjbh':'0901','xx':'阿毛'},{'xxbh':'1006','bjbh':'0901','xx':'李铭'},
		{'xxbh':'1005','bjbh':'0901','xx':'阿城'},{'xxbh':'1004','bjbh':'0901','xx':'张晓'},
		{'xxbh':'1006','bjbh':'0901','xx':'小小'},{'xxbh':'1004','bjbh':'0901','xx':'白昼'},
		{'xxbh':'1002','bjbh':'0901','xx':'乐乐'},{'xxbh':'1001','bjbh':'0901','xx':'黎明'}
	];
	function creatMapByXxbh(arrJson){
		var xxbhMap={};
		var len = arrJson.length;
		for(var i=0;i<len;i++){
		
			if(xxbhMap[arrJson[i].xxbh] == undefined){
				var list = [];
				list.push(arrJson[i]);
				xxbhMap[arrJson[i].xxbh] = list;
			}else{
				xxbhMap[arrJson[i].xxbh].push(arrJson[i]);
			}
			
		}
		var str="<table border='1'><tr><td width='200'>学校编号</td><td width='200'>班级</td><td width='200'>姓名</td></tr>";
		for(var xxbh in xxbhMap){
			var stu = xxbhMap[xxbh];
			alert(stu.length);
			str+="<tr><td rowspan='"+stu.length+"'>"+xxbh+"</td>";
			for(var i = 0;i < stu.length;i++){
				//document.write(xxbh + " "+stu[i].bjbh+" "+stu[i].xx +"<br />")
				//document.write("<table><tr><td>学校编号</td><td>班级</td><td>姓名</td></tr></table> ")
				if(i==0){
					str+="<td>"+stu[i].bjbh+"</td><td>"+stu[i].xx+"</td></tr>";
				}else{
					str+="<tr><td>"+stu[i].bjbh+"</td><td>"+stu[i].xx+"</td></tr>";
				}	
			}
			str+="<tr ><td colspan='3'>"+xxbh+"共有"+stu.length+"个班级</td></tr>"
		}
		str+="</table> ";
		document.write(str)
	}
  </script>
 </head >

 <body>
  <button onclick='creatMapByXxbh(arrJson)'>测试</button> 
 </body>
</html>
 

 

 

  • ex.rar (972 Bytes)
  • 下载次数: 38
  • 大小: 99.2 KB
0
0
分享到:
评论

相关推荐

    js 实现 动态生成包含合并单元格的表格

    js 实现 动态生成包含合并单元格的表格! 值得下载看看!资源免费,大家分享!!

    js实现table分页可以动态生成table

    在JavaScript中实现表格(table)分页是一种常见的需求,特别是在数据量较大的网页应用中,为了提高用户体验和加载速度,我们通常会将数据分页展示。本文将深入探讨如何使用JavaScript来实现这一功能,并结合给定的...

    JS实现动态修改table及合并单元格的方法示例

    在JavaScript中,动态修改表格(Table)以及合并单元格是常见的需求,特别是在处理数据展示或者报表生成时。以下将详细介绍如何使用JS实现这些功能。 首先,要动态修改表格,我们需要获取表格元素。在HTML中,表格...

    LayUiTable表单相同参数的单元格合并

    本话题聚焦于LayUI中的Table组件,特别是如何实现相同参数的单元格合并功能,这在展示数据时能有效提高信息的可读性和美观性。 LayUI Table的单元格合并功能,主要是通过`parseData`方法和自定义模板来实现的。当...

    table数据相同合并单元格

    table数据相同时合并单元格,原理:逐行进行比较,相同时隐藏第二行,对第一行添加rowspan 【table数据相同时合并单元格,原理:逐行进行比较,相同时隐藏第二行,对第一行添加rowspan】

    js动态生成table

    在JavaScript中,动态生成table是一种常见的网页交互功能,它允许我们根据需求在页面上实时创建、添加或删除表格行(tr)和单元格(td)。这个功能在数据展示、表格编辑或者用户交互丰富的应用场景中非常实用。下面...

    利用js合并table相同内容单元格并js方式自动生成

    利用js合并table相同内容单元格并js方式自动生成,把文本内容复制进js中,应该就知道大概咋用了

    JStable动态合并相同行

    JS table动态合并相同行,只需传入table名称,js自动合并

    JS 实现Table相同行的单元格自动合并示例代码

    在HTML文档中使用JavaScript来自动合并表格中相同行的单元格是一种常见的前端开发技术。这种技术可以提高页面的可读性,尤其是在处理具有相同值的重复数据时。上述代码示例提供了一种简单而有效的方法来实现这一功能...

    vue-easytable合并单元格

    在这个“vue-easytable合并单元格”的主题下,我们将深入探讨如何利用Vue Easytable实现表格中的单元格合并。 在传统的HTML表格中,合并单元格通常使用`&lt;td&gt;`的`colspan`和`rowspan`属性来完成,但在Vue Easytable...

    原生JS实现HTML- TABLE 自动行合并插件

    类功能描述:该插件生成一个具有行合并的列表数据,合并例由开发者指定。 开发者提供已排序的数据列表以及需要合并行的列名即可,无需后端二次处理数据。 该类以纯原生JS编写,无需引入任何第三方库。 调用方法:...

    js实现表格相同数据合并

    为了提升用户体验,我们可以利用JavaScript(js)以及jQuery库来实现表格相同数据的合并功能,使表格看起来更整洁、专业。 首先,我们要理解JavaScript的基本概念。JavaScript是一种轻量级的解释型编程语言,广泛...

    table自动合并相同值得单元格的例子

    一个简单的自动合并相同值单元格的例子,简单易懂

    table表格按列合并相同数据行单元格代码

    在jsp、html页面中实现table表格按列合并相同数据行单元格代码,可实现功能为:在一个table表格中,合并指定列中所有相同数据相邻行单元格内容。

    用JQuery实现table按列分组(简单常用

    例如,如果我们想根据第二列(索引为1,因为JavaScript数组的索引是从0开始的)进行分组,我们可以这样做: ```javascript var $table = $('#yourTableId'); var groups = {}; $table.find('tr').each(function...

    基于Jasperreport动态单元格合并模板

    本主题将深入探讨如何利用JasperReport实现动态单元格合并,支持多层分组排序和多分组动态合并单元格。 首先,我们要理解JasperReport的基本概念。JasperReport是一个基于Java的报告设计库,它允许开发者通过JRXML...

    el-table合并列 合并单元格

    el-element中el-table合并单元格 合并列。无限制列合并。通过循环数据源数据获取该列需要合并的行数。

    完美的table单元格合并js

    本js脚本完美的实现了table单元格的合并,合并后犹如交叉表的形式,非常完美,并在其中附带例子可以验证。

    vue实现将一个数组内的相同数据进行合并

    在Vue中实现将数组内相同数据进行合并的功能,主要涉及到数组操作和数据结构的设计。通过上述文章内容,我们可以详细讨论如何在Vue项目中编写逻辑以合并具有相同属性值的对象数组。 首先,我们需要了解在Vue中如何...

Global site tag (gtag.js) - Google Analytics