h5 获取动态数据进行四级联动,其中一二级为下拉框,三级为表格有复选框,四级为显示数据的表格 具体代码
时间: 2024-02-21 08:00:28 浏览: 154
jQuery下拉框三级联动插件
好的,以下是一个简单的例子,展示了如何使用H5获取动态数据进行四级联动,其中一二级为下拉框,三级为表格有复选框,四级为显示数据的表格的具体代码。请注意,这只是一个简单的例子,您需要根据实际情况进行修改和完善。
HTML代码:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>四级联动示例</title>
</head>
<body>
<!-- 一级下拉框 -->
<select id="level1">
<option value="">请选择</option>
</select>
<!-- 二级下拉框 -->
<select id="level2">
<option value="">请选择</option>
</select>
<!-- 三级表格 -->
<table id="level3">
<thead>
<tr>
<th>名称</th>
<th>选项</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
<!-- 四级表格 -->
<table id="level4">
<thead>
<tr>
<th>名称</th>
<th>描述</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</body>
</html>
```
JavaScript代码:
```javascript
// 获取一二级数据
fetch('/api/level1')
.then(response => response.json())
.then(data => {
// 将数据添加到一级下拉框中
let select1 = document.getElementById('level1');
data.forEach(item => {
let option = document.createElement('option');
option.value = item.id;
option.text = item.name;
select1.appendChild(option);
});
// 监听一级下拉框的选择事件
select1.addEventListener('change', () => {
// 获取选中的一级选项的值
let val1 = select1.value;
// 根据一级选项的值,获取二级数据
fetch(`/api/level2?val1=${val1}`)
.then(response => response.json())
.then(data => {
// 清空二级下拉框中的选项
let select2 = document.getElementById('level2');
select2.innerHTML = '<option value="">请选择</option>';
// 将数据添加到二级下拉框中
data.forEach(item => {
let option = document.createElement('option');
option.value = item.id;
option.text = item.name;
select2.appendChild(option);
});
// 监听二级下拉框的选择事件
select2.addEventListener('change', () => {
// 获取选中的二级选项的值
let val2 = select2.value;
// 根据二级选项的值,获取三级数据
fetch(`/api/level3?val2=${val2}`)
.then(response => response.json())
.then(data => {
// 清空三级表格中的数据
let table3 = document.getElementById('level3');
table3.querySelectorAll('tbody tr').forEach(tr => {
tr.parentNode.removeChild(tr);
});
// 将数据添加到三级表格中
data.forEach(item => {
let tr = document.createElement('tr');
let td1 = document.createElement('td');
let td2 = document.createElement('td');
let checkbox = document.createElement('input');
checkbox.type = 'checkbox';
td1.textContent = item.name;
td2.appendChild(checkbox);
tr.appendChild(td1);
tr.appendChild(td2);
table3.querySelector('tbody').appendChild(tr);
});
// 监听三级表格中复选框的选择事件
table3.querySelectorAll('tbody input[type="checkbox"]').forEach(checkbox => {
checkbox.addEventListener('change', () => {
// 获取选中的三级数据
let data = [];
table3.querySelectorAll('tbody input[type="checkbox"]:checked').forEach(checkbox => {
let tr = checkbox.parentNode.parentNode;
data.push({
id: tr.dataset.id,
name: tr.cells[0].textContent
});
});
// 将数据添加到四级表格中
let table4 = document.getElementById('level4');
table4.querySelectorAll('tbody tr').forEach(tr => {
tr.parentNode.removeChild(tr);
});
data.forEach(item => {
let tr = document.createElement('tr');
let td1 = document.createElement('td');
let td2 = document.createElement('td');
td1.textContent = item.name;
td2.textContent = item.id;
tr.appendChild(td1);
tr.appendChild(td2);
table4.querySelector('tbody').appendChild(tr);
});
});
});
});
});
});
});
});
```
以上代码实现了四级联动功能。其中,一二级数据和三级数据是通过异步请求获取的,具体的URL可以根据实际情况修改。在三级表格中,通过复选框实现了数据的选择功能,在四级表格中展示了选择的数据。在实际使用过程中,您需要根据实际情况进行修改和完善。
阅读全文