JavaScript开发心得--如何传递某行数据给下一页

1, 应用场景

在某个html页面显示一批数据,如20个用户的名称、年龄等,每行都要一个编辑按钮,点击编辑后,将此行数据带入某个专门的编辑页进行显示,修改后保存。

问题是 点击编辑按钮后,如何得知要编辑的是哪行数据?

2, 采用隐藏的信息栏传送行号信息

本人采用在编辑栏<td>中嵌入隐藏的span信息实现,如下:

			<table>
					<tr>
						<th>行号</th><th>车场名称</th><th>地址</th><th>申请人</th><th>申请人电话</th><th>审核操作</th>
					</tr>
					<tr ng-repeat="car in cars"  ng-class-even="'tr-even'">
						<td>{{car.rowNum}}</td><td>{{car.ParkName}}</td><td>{{car.Address}}</td>
						<td>{{car.OPT}}</td><td>{{car.Tel}}</td>
						<td><button onclick="DoCheck(this.innerText);">审核<span style="display: none;">{{car.rowNum}}</span></button>
						</td>
					</tr>
			</table>

在处理函数中,分析参数,取出行号

        function DoCheck(rowNumText){
        	//rowNumText形如: 审核1,审核2。。。
        	CurrRow = parseInt(substring(rowNumText,2))-1;
               ...
        }

 3,浏览器兼容问题

 以上代码在IE中运行良好,但到了chrome中,发现取不出行号。参数this.innerText,只含有“审核”二字,不返回隐藏的行号。

为此,将innerText改为innerHTML,处理函数改为:

        function DoCheck(rowNumText){
            //rowNumText形如:审核<span class="ng-binding" style="display: none;">1</span>
            var sub_string = rowNumText.substring(8,100);
            var index1 = sub_string.indexOf('>');
            var index2 = sub_string.indexOf('<');
            
            CurrRow = parseInt(sub_string.substr(index1+1,index2-index1-1))-1;

。。。。
        }

以上代码在IE和chrome均正常运行。

原文地址:https://www.cnblogs.com/jackkwok/p/6952809.html