html 从一个多维数组中循环读取每一维显示成一行,每一行构建一个勾选项,构建2个按钮,点击增加按钮,增加一行空数据,点击删除按钮,删除已经勾选的行
时间: 2024-10-03 09:01:31 浏览: 27
计算机科学与技术中的C语言数组基础知识解析:一维与多维数组详解
在HTML中,你可以使用嵌套的`<div>`、`<label>`、`<input type="checkbox">`以及`<button>`元素来实现这个功能。首先,你需要创建一个表格结构,每一行代表数组的一维,并通过JavaScript处理添加和删除操作。这是一个简单的示例:
```html
<!DOCTYPE html>
<html lang="zh">
<head>
<title>二维数组动态表格</title>
<style>
table {
width: 100%;
border-collapse: collapse;
}
th, td {
padding: 8px;
text-align: left;
border-bottom: 1px solid #ccc;
}
button {
margin-top: 5px;
}
</style>
</head>
<body>
<table id="dynamicTable">
<thead>
<tr>
<th>选择</th>
<!-- 根据实际数组长度动态生成列 -->
<!-- 更改这里,将"[]"替换为数组的实际键名 -->
<th>键名[[]]</th>
</tr>
</thead>
<tbody></tbody>
</table>
<button onclick="addRow()">增加行</button>
<button onclick="deleteCheckedRows()">删除已勾选</button>
<script>
// 假设你有一个名为data的二维数组,如:let data = [...];
let currentData = [];
function displayData(data) {
const tbody = document.querySelector('#dynamicTable tbody');
tbody.innerHTML = '';
for (const row of data) {
const newRow = `<tr><td><input type="checkbox"></td>`;
for (const key in row) {
newRow += `<td>${row[key]}</td>`;
}
newRow += '</tr>';
tbody.insertAdjacentHTML('beforeend', newRow);
}
}
function addRow() {
const newRow = `<tr><td><input type="checkbox"></td><td>New Item</td></tr>`;
document.querySelector('#dynamicTable tbody').insertAdjacentHTML('beforeend', newRow);
}
function deleteCheckedRows() {
const checkboxes = document.querySelectorAll('#dynamicTable input[type="checkbox"]:checked');
for (const checkbox of checkboxes) {
const parentRow = checkbox.parentNode;
parentRow.remove();
}
}
// 初始化数据
displayData(currentData);
</script>
</body>
</html>
```
阅读全文