使用JavaScript从本地存储和视图中获取数据,并通过下拉菜单对表进行排序的步骤如下:
以下是一个示例代码:
HTML代码:
<!DOCTYPE html>
<html>
<head>
<title>数据排序示例</title>
</head>
<body>
<select id="sortSelect">
<option value="name">按名称排序</option>
<option value="age">按年龄排序</option>
</select>
<table id="dataTable">
<thead>
<tr>
<th>名称</th>
<th>年龄</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
<script src="script.js"></script>
</body>
</html>
JavaScript代码(script.js):
// 从本地存储中获取数据
function getDataFromLocalStorage() {
const data = localStorage.getItem('data');
return data ? JSON.parse(data) : [];
}
// 将数据存储到本地
function saveDataToLocalStorage(data) {
localStorage.setItem('data', JSON.stringify(data));
}
// 根据下拉菜单的值对数据进行排序
function sortDataBySelectedOption(data, selectedOption) {
switch (selectedOption) {
case 'name':
data.sort((a, b) => a.name.localeCompare(b.name));
break;
case 'age':
data.sort((a, b) => a.age - b.age);
break;
default:
break;
}
}
// 渲染数据到表格
function renderDataToTable(data) {
const tableBody = document.querySelector('#dataTable tbody');
tableBody.innerHTML = '';
data.forEach(item => {
const row = document.createElement('tr');
const nameCell = document.createElement('td');
const ageCell = document.createElement('td');
nameCell.textContent = item.name;
ageCell.textContent = item.age;
row.appendChild(nameCell);
row.appendChild(ageCell);
tableBody.appendChild(row);
});
}
// 下拉菜单值变化时的事件处理程序
function handleSortSelectChange() {
const selectedOption = this.value;
const data = getDataFromLocalStorage();
sortDataBySelectedOption(data, selectedOption);
renderDataToTable(data);
}
// 初始化页面
function init() {
const sortSelect = document.getElementById('sortSelect');
sortSelect.addEventListener('change', handleSortSelectChange);
const data = [
{ name: 'Alice', age: 25 },
{ name: 'Bob', age: 30 },
{ name: 'Charlie', age: 20 }
];
saveDataToLocalStorage(data);
renderDataToTable(data);
}
init();
这个示例代码实现了从本地存储和视图中获取数据,并通过下拉菜单对表进行排序的功能。当下拉菜单的值发生变化时,会触发change事件,然后根据选中的排序选项对数据进行排序,并更新表格的视图。
领取专属 10元无门槛券
手把手带您无忧上云