在下拉列表更改时将JSON数组转换为HTML表,可以通过以下步骤实现:
以下是一个示例代码,用于将JSON数组转换为HTML表格:
<!DOCTYPE html>
<html>
<head>
<title>JSON to HTML Table</title>
</head>
<body>
<select id="dropdown">
<option value="data1">Data 1</option>
<option value="data2">Data 2</option>
<option value="data3">Data 3</option>
</select>
<div id="table-container"></div>
<script>
// JSON数组
var jsonData = {
"data1": [
{"name": "John", "age": 25},
{"name": "Jane", "age": 30},
{"name": "Tom", "age": 35}
],
"data2": [
{"name": "Alice", "age": 28},
{"name": "Bob", "age": 32},
{"name": "Kate", "age": 27}
],
"data3": [
{"name": "Mike", "age": 40},
{"name": "Sarah", "age": 33},
{"name": "David", "age": 29}
]
};
// 监听下拉列表变化事件
var dropdown = document.getElementById("dropdown");
dropdown.addEventListener("change", function() {
var selectedValue = dropdown.value;
var selectedData = jsonData[selectedValue];
// 转换为HTML表格
var table = document.createElement("table");
var thead = document.createElement("thead");
var tbody = document.createElement("tbody");
// 创建表头
var headerRow = document.createElement("tr");
for (var key in selectedData[0]) {
var th = document.createElement("th");
th.textContent = key;
headerRow.appendChild(th);
}
thead.appendChild(headerRow);
table.appendChild(thead);
// 创建表格内容
for (var i = 0; i < selectedData.length; i++) {
var dataRow = document.createElement("tr");
for (var key in selectedData[i]) {
var td = document.createElement("td");
td.textContent = selectedData[i][key];
dataRow.appendChild(td);
}
tbody.appendChild(dataRow);
}
table.appendChild(tbody);
// 插入到页面中
var tableContainer = document.getElementById("table-container");
tableContainer.innerHTML = "";
tableContainer.appendChild(table);
});
</script>
</body>
</html>
在上述示例代码中,首先定义了一个JSON数组 jsonData
,其中包含了三个数据集。然后,通过监听下拉列表的变化事件,获取选中的值,并根据该值从 jsonData
中获取相应的数据。接着,使用DOM操作动态创建表格元素和行、列,并将数据填充到表格中。最后,将生成的HTML表格插入到页面中的指定位置(table-container
)。
请注意,上述示例代码中没有提及具体的腾讯云产品和产品介绍链接地址,因为在这个问题的背景中要求不能提及亚马逊AWS、Azure、阿里云、华为云、天翼云、GoDaddy、Namecheap、Google等流行的云计算品牌商。如果需要了解腾讯云相关产品和产品介绍,可以访问腾讯云官方网站进行查询。
领取专属 10元无门槛券
手把手带您无忧上云