创建带有列表JSON数据的表格HTML,并添加过滤器选择下拉列表可以通过以下步骤完成:
<!DOCTYPE html>
<html>
<head>
<title>表格示例</title>
</head>
<body>
<table id="data-table">
</table>
</body>
</html>
var data = [
{ name: "John", age: 25, city: "New York" },
{ name: "Jane", age: 30, city: "London" },
{ name: "Bob", age: 35, city: "Paris" },
{ name: "Alice", age: 28, city: "Tokyo" }
];
var table = document.getElementById("data-table");
// 创建表头行
var headerRow = table.insertRow();
var headers = Object.keys(data[0]);
headers.forEach(function(header) {
var cell = headerRow.insertCell();
cell.innerHTML = header;
});
// 创建数据行
data.forEach(function(item) {
var row = table.insertRow();
Object.values(item).forEach(function(value) {
var cell = row.insertCell();
cell.innerHTML = value;
});
});
// 创建下拉列表
var filterSelect = document.createElement("select");
filterSelect.id = "filter-select";
// 添加选项
var options = [...new Set(data.map(item => item.city))];
options.forEach(function(option) {
var optionElement = document.createElement("option");
optionElement.value = option;
optionElement.text = option;
filterSelect.appendChild(optionElement);
});
// 监听下拉列表变化事件
filterSelect.addEventListener("change", function() {
var selectedValue = filterSelect.value;
var rows = table.getElementsByTagName("tr");
for (var i = 1; i < rows.length; i++) {
var row = rows[i];
var cityCell = row.getElementsByTagName("td")[2];
if (cityCell.innerHTML === selectedValue || selectedValue === "All") {
row.style.display = "";
} else {
row.style.display = "none";
}
}
});
// 将下拉列表添加到页面
document.body.insertBefore(filterSelect, table);
完成上述步骤后,打开HTML文件,你将看到一个带有列表JSON数据的表格,并且可以使用下拉列表来筛选表格数据。
领取专属 10元无门槛券
手把手带您无忧上云