悠悠楠杉
网站页面
正文:
在现代Web开发中,动态数据展示是提升用户体验的关键技术之一。本文将手把手教你如何通过JavaScript监听下拉菜单的选项变化,并将选中的值实时展示到HTML表格中。整个过程无需依赖第三方库,仅用原生JavaScript即可实现。
首先,我们需要构建一个包含下拉菜单和空白表格的HTML页面:
html
| 选项值 | 显示文本 |
|---|
通过addEventListener监听下拉菜单的change事件,获取选中项的value和text,并动态插入表格:
document.getElementById('menu').addEventListener('change', function() {
const selectedOption = this.options[this.selectedIndex];
const value = selectedOption.value;
const text = selectedOption.text;
if (value) {
const tbody = document.querySelector('#dataTable tbody');
tbody.innerHTML = ''; // 清空现有内容
const row = document.createElement('tr');
row.innerHTML = `<td>${value}</td><td>${text}</td>`;
tbody.appendChild(row);
}
});
若需展示历史选择记录,只需调整逻辑,保留之前的行而非清空表格:
document.getElementById('menu').addEventListener('change', function() {
const selectedOption = this.options[this.selectedIndex];
const value = selectedOption.value;
const text = selectedOption.text;
if (value) {
const tbody = document.querySelector('#dataTable tbody');
const row = document.createElement('tr');
row.innerHTML = `<td>${value}</td><td>${text}</td>`;
tbody.appendChild(row);
}
});
通过遍历现有行数据避免重复插入,并添加CSS类增强交互:
document.getElementById('menu').addEventListener('change', function() {
const selectedOption = this.options[this.selectedIndex];
const value = selectedOption.value;
const text = selectedOption.text;
const tbody = document.querySelector('#dataTable tbody');
// 检查是否已存在相同值
let isDuplicate = false;
tbody.querySelectorAll('tr').forEach(row => {
if (row.cells[0].textContent === value) {
isDuplicate = true;
row.classList.add('highlight'); // 高亮重复项
}
});
if (value && !isDuplicate) {
const row = document.createElement('tr');
row.innerHTML = `<td>${value}</td><td>${text}</td>`;
tbody.appendChild(row);
}
});
此技术可广泛应用于:
- 电商平台筛选商品后展示详情
- 数据分析工具的动态报表生成
- 后台管理系统的条件查询结果展示
通过灵活调整代码逻辑,开发者能轻松适配不同业务需求。