javascript - 将菜单项链接到同一页面,但显示不同的 div
问题描述
我正在尝试将三个菜单项链接到同一页面,根据我单击的内容显示不同的 div。
在这个页面中,我有一个下拉菜单,菜单的每个选项都显示一个特定的 div 并隐藏其他的。单击菜单项后,应该发生的是:
- 打开页面
- 显示正确的下拉菜单选项
- 显示与所选选项相关的 div。
这里是链接页面中输入的下拉菜单的代码。
HTML
<select id="test" name="form_select" onchange="showDiv(this)">
<option value="hidden_div1">Show div 1</option>
<option value="hidden_div2">Show div 2</option>
<option value="hidden_div3">Show div 3</option>
<option value="hidden_div4">Show div 4</option>
</select>
<div id="hidden_div1">This is hidden div 1</div>
<div id="hidden_div2">This is hidden div 2</div>
<div id="hidden_div3">This is hidden div 3</div>
<div id="hidden_div4">This is hidden div 4</div>
CSS
div[id*="hidden_div"] {
display: none;
}
JAVASCRIPT
// When the page loads, make sure the already selected div is shown.
window.onload = function afterPageIsLoaded() {
showDiv();
}
function showDiv(element) {
// Create an array of all the hidden divs elements.
const hiddenDivs = [...document.querySelectorAll("div[id*='hidden_div']")];
// Loop over them and hide every one of them.
hiddenDivs.map(hiddenDiv => hiddenDiv.style.display = 'none');
// Get the selected id from the select.
const id = document.getElementById('test').value;
// Get the selected div and display it.
document.getElementById(id).style.display = 'block';
}
(这是相关的小提琴(https://jsfiddle.net/5pemtkh8/4/))
非常感谢。
解决方案
推荐阅读
- graphql - 用户表,其中用户在 Amplify 中关注其他用户
- c++ - 如何过滤/区分由 Windows API NotifyIpInterfaceChange() 捕获的实际事件和“虚拟”事件
- ios - 来自 UserDefault 的类型转换值会引发错误
- python - /students/delete_gr/234/ 的字段错误
- spring-boot - 如何更新在 docker 容器中运行的应用程序?(例如,弹簧靴)
- java - Spring AOP 记录器跟踪 ID 与 Spring Cloud Sleuth?
- python - 当 unix 服务器使用 VShell 时使用 paramiko
- prometheus - 呼叫警报与 Prometheus Alertmanager 集成
- angular -
不是已知元素。请确认它是此模块的一部分 - node.js - Sails:在单个服务器中使用不同的项目