html 设置表格 可以填写并且添加行 将表格数据生成json
时间: 2024-09-15 08:02:07 浏览: 31
JavaScript根据json生成html表格的示例代码
在HTML中,可以使用`<input>`标签设置表格的输入字段,允许用户填写内容,而表格数据的动态生成通常通过JavaScript配合事件处理来完成。当你收集完用户输入的数据并想要将其转换为JSON格式,你可以这样做:
首先,创建一个允许用户编辑的表格结构:
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>动态表格及数据转JSON</title>
</head>
<body>
<table id="dynamicTable">
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<!-- 添加更多表头列 -->
</tr>
</thead>
<tbody>
</tbody>
</table>
<button onclick="saveDataToJSON()">保存为JSON</button>
<script>
// 初始化一个空数组存储表格数据
const data = [];
function addRow() {
const newRow = document.createElement('tr');
const cell1 = document.createElement('td');
const cell2 = document.createElement('td');
cell1.innerHTML = '<input type="number" placeholder="ID">';
cell2.innerHTML = '<input type="text" placeholder="Name">';
newRow.appendChild(cell1);
newRow.appendChild(cell2);
document.getElementById('dynamicTable').getElementsByTagName('tbody')[0].appendChild(newRow);
}
function saveDataToJSON() {
const tableBody = document.getElementById('dynamicTable').getElementsByTagName('tbody')[0];
let jsonData = [];
for (let i = 0; i < tableBody.rows.length; i++) {
const rowData = {};
rowData['ID'] = parseInt(tableBody.rows[i].cells[0].querySelector('input').value);
rowData['Name'] = tableBody.rows[i].cells[1].querySelector('input').value;
// 根据实际需求填充其他列的数据
jsonData.push(rowData);
}
localStorage.setItem("tableData", JSON.stringify(jsonData));
console.log("保存为JSON:", jsonData); // 打印查看
}
</script>
</body>
</html>
```
在这个示例中,`addRow`函数用于创建新的表格行,`saveDataToJSON`函数负责获取用户输入,构建一个JSON对象数组,并存储在本地浏览器的localStorage中。
阅读全文