js获取table表格数据并返回对象数组(工作记录)

本文档记录了如何在HTML环境中获取表格数据并将其转换为JSON对象数组的过程。首先通过JavaScript的getElementById方法获取表格对象,然后通过双重循环遍历行和列获取每个单元格的值。接着,利用标题ID作为键,单元格内容作为值,构造JSON对象,并将每一行的数据存入数组。最终,实现了将表格数据结构化存储,便于进一步处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、需求目的

实际应用中有获取table表格数据的需求,并且常用处理为返回对象数组,方便进行处理;下面针对此问题进行解决记录

2、表格代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>	
	<body>
		 <table id="tab">
              <thead>
                <tr>
                    <th style="width:10%" id="xh">序号</th>
                    <th style="width:40%" id="dah">档案号</th>
                    <th style="width:50%" id="wlwz">物理位置</th>
                </tr>
              </thead>
              <tbody id="tb">
              	<tr>
              		<td id="1">1</td>
              		<td>5566</td>
              		<td>5566</td>
              	</tr>
                  <tr id="2">
              		<td>2</td>
              		<td>7788</td>
              		<td>7788</td>
              	</tr>
              	<tr id="3">
              		<td>4</td>
              		<td>9900</td>
              		<td>9900</td>
              	</tr>
              </tbody>
           </table>
           <input type="button" value="获取表格数据" onclick="getvalue()" />
	</body>
</html>

3、获取每个单元值

处理逻辑:先获取整个表格对象,在通过双层循环逐个单元各获取每个单元格值,如下:

<script type="text/javascript">
	function getvalue(){
		var obj=document.getElementById("tab");
		var rows=obj.rows;
		for(var i=1;i<rows.length;i++){ //由于第一行一般为标题,所以从第二行开始获取值)
			for(var j=0;j<rows[i].cells.length;j++){
	           console.log(rows[i].cells[j].innerHTML)
	        }
		}
	}
</script>

重新组装方法

值已拿到,现在用标题的id作为key,单元格值作为value拼接JSON,并将每行拼接的JSON存入数组中,成品代码:

function getvalue(){
		var gridArr=[];
		var obj=document.getElementById("tab");
		var rows=obj.rows;
		console.log(gridArr.length)
		for(var i=1;i<rows.length;i++){ //行
			var griditem={};
			for(var j=0;j<rows[i].cells.length;j++){
	           griditem[rows[0].cells[j].id]=rows[i].cells[j].innerHTML;
	        }
			gridArr.push(griditem);
		}
		console.log(gridArr)
	}

最终效果:

4、总结

首先通过document.getElementById获取表格对象,在通过obj.rows获取行对象,运用双层for循环逐个获取单元格值,并拼接JSON对象,最后将JSON对象存入数组中即可。

在Vue3中,`el-table`组件是Element UI库中的一个用于展示表格的强大工具,它特别适合处理数据驱动的界面。当你有一个二维对象数组(即每个元素是一个包含多个键值对的对象数组内部再包含这样的对象)时,可以按照以下步骤来设置和渲染: 1. **数据准备**: 假设你有一个这样的二维对象数组: ```javascript const tableData = [ { id: 1, name: '张三', age: 25, address: { city: '北京', district: '朝阳区' } }, ... // 更多对象 ]; ``` 2. **模板结构**: 使用`v-for`指令遍历每一行数据嵌套遍历对象内的属性: ```html <template> <el-table :data="tableData"> <el-table-column prop="id" label="ID"></el-table-column> <el-table-column prop="name" label="姓名"></el-table-column> <!-- 如果有嵌套对象,可以添加嵌套列 --> <el-table-column prop="address.city" label="城市"></el-table-column> <el-table-column prop="address.district" label="区域"></el-table-column> </el-table> </template> ``` 3. **响应式绑定**: 确保你在Vue实例上已经创建了`tableData`变量,且通过`<script>`标签将其注入到组件中,或者作为计算属性或watch监听变化。 4. **动态列名**: 如果需要显示动态的列名,可以在`column`里使用`formatter`属性: ```html <el-table-column v-for="(item, index) in objectKeys(tableData[0])" :key="index" :prop="item" :label="item" :formatter="formatNestedColumn"></el-table-column> ``` `formatNestedColumn`函数可以进一步处理嵌套对象的字符串显示。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值