合并table行的实现方式页面加载完成后使用js实现动态加入rowspan

列表在加载完成后,使用JS的方式做table列表合并行。

首先需要用到jquery引用

下面是table的代码

<table>
      <thead>
		<tr>
			<th>序号</th>
			<th>大类</th>
			<th>小类</th>
			<th>结果</th>
		</tr>
	 </thead>
     <tbody class="tab">
		<tr>
			<td>1</td>
			<td class="row_a">道路</td>
			<td>马路</td>
			<td>10条</td>
		</tr>
		<tr>
			<td>2</td>
			<td class="row_a">道路</td>
			<td>铁路</td>
			<td>1条</td>
		</tr>
		<tr>
			<td>3</td>
			<td class="row_a">道路</td>
			<td>高速路</td>
			<td>2条</td>
		</tr>
		<tr>
			<td>4</td>
			<td class="row_b">小区</td>
			<td>C1</td>
			<td>100栋</td>
		</tr>
		<tr>
			<td>5</td>
			<td class="row_b">小区</td>
			<td>C2</td>
			<td>101栋</td>
		</tr>
		<tr>
			<td>6</td>
			<td class="row_c">商场</td>
			<td>金鹰</td>
			<td>1个</td>
		</tr>
		<tr>
			<td>7</td>
			<td class="row_c">商场</td>
			<td>世贸</td>
			<td>2个</td>
		</tr>
	</tbody>
   </table>

下面是js的代码

$(function(){
	    $(".tab").find("td[class^='row_']").each(function(index,element){
			//获取每个开始行的class
			var fristClass = $(element).attr("class");
			//获取所有相同fristClass需要合并行的对象
			var objs = $(".tab").find("."+fristClass);
			//如果获取对象数量大于等于1说明需要合并
			if(objs.length >=1){
				//设置首行的rowspan
				objs.eq(0).attr("rowspan",objs.length);
				//移除首行的class
				objs.eq(0).removeClass(fristClass);
				//移除本class的其余行
				$(".tab").find("."+fristClass).remove();
			}
			
		});
	});

合并后的效果如图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值