js添加行后删除行集合序号问题

120 阅读1分钟

​本文已参与「新人创作礼」活动,一起开启掘金创作之路。

动态添加行的实现(简略)

html部分

<table class="mytable" >
 <tr>
  <td>	
   <table class="table table-striped table-bordered table-condensed">
   	<!-- 定义表头 -->
	<thead>
	 <tr>
	  <th><span class="help-inline"></span>姓名</th>
	  <th><span class="help-inline"></span>年龄</th>
	  <th><span class="help-inline"></span>身高</th>
	 </tr>
	</thead>
	<tfoot>
		<tr>
			<td colspan="5">
				<a href="javascript:"
				   onclick="addAListRow('#AList', AListItemRowIdx, AListItemTpl);AListItemRowIdx = bJcpayListItemRowIdx + 1;"
				   class="btn">添加</a>
		    </td> 
		</tr>
	</tfoot>

	<!-- 定义表格体 -->
	<tbody id="AList"></tbody>
   </table>	

			 
   			 
  </td>		 
 </tr>			 
</table>

js部分

<!-- 实现列表功能项 -->
<script type="text/javascript">		
	//初始化全局参数
	var AListItemRowIdx = 0;
	var AListItemTpl = $("#AListItemTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
	//初始化数据列表
	var data=${fns:toJson(object.AList)};
	if(data){
		for (var i=0; i<data.length; i++){
			addAListRow('#AList', AListItemRowIdx, AListItemTpl,data[i]);
			AListItemRowIdx=AListItemRowIdx+1;
		}
	}
	//新增行
	function addAListRow(list, idx, tpl, row){
		$(list).append(Mustache.render(tpl, {
			idx: idx, delBtn: true, row: row
		}));
	}	

	//删除该行数据
	function delAListRow(obj, prefix) {
		$(obj).parent().parent().remove();
	}
	//删除所有行
	function delAllRow() {
		$("#AList").find("tr").remove();
	}
</script>		

问题描述

添加两行删除一行再添加一行

问题如下

在这里插入图片描述

提交后,后端实际获取到三条数据

如下【1】集合实际是空的

在这里插入图片描述

问题解决

目前没有想到前端js的解决方法,只能后端去除空元素

	//遍历集合更新每条数据
	List<A> AListO = object.getAList();
	ArrayList<A> AList = new ArrayList<A>();
	//去除空元素
	for(int i=0;i<AListO.size();i++) {
		if(AListO.get(i) != null 
			&& AListO.get(i).getId() != null 
			&& AListO.get(i).getId() != "") {
			AList.add(AListO.get(i));
		}
	}