使用下拉菜单隐藏和显示元素
hide and display elements using a dropdown menu
我想知道是否可以使用下拉菜单隐藏和显示不同的元素。目前我的菜单有这个代码:
<select id="productSel" onChange="OnSelectedIndexChange()">
<option value="0">Value 0</option>
<option value="1">Value 1</option>
<option value="2">Value 2</option>
</select>
这是我的javascript:
<script>
function OnSelectedIndexChange() {
if (document.getElementById('productSel').value == "0"){
document.getElementById("Option1").style.display = "block";
document.getElementById("Option2").style.display = "none";
document.getElementById("Option3").style.display = "none";
}
};
</script>
<script>
function OnSelectedIndexChange() {
if (document.getElementById('productSel').value == "1"){
document.getElementById("Option1").style.display = "none";
document.getElementById("Option2").style.display = "block";
document.getElementById("Option3").style.display = "none";
}
};
</script>
<script>
function OnSelectedIndexChange() {
if (document.getElementById('productSel').value == "2"){
document.getElementById("Option1").style.display = "none";
document.getElementById("Option2").style.display = "none";
document.getElementById("Option3").style.display = "block";
}
};
</script>
这就是需要改变的领域:
<div id="Option1" style="display:none">
<p>Option1</p>
<p>Line 2</p>
除了Option编号不同之外,还有2个类似的div,但由于某种原因,它不会显示我的代码的其余部分超过结束div标记。我遇到了麻烦,因为那个代码是有效的,除了它只适用于顶部选项。因此,如果有3个选项,它们一开始都是不可见的,就像我想要的那样,但当我从菜单中选择一个选项时,它不会显示它们。它将只显示第三个选项而不显示另一个2。如果有两个选项,它将只显示第二个选项,而不是第一个选项,即使我选择了第一个。这是我第一次在这里提问,所以如果我没有清除
下拉框应该是调用3个时间事件。你是被创建的,所以它每次都是最后一次函数调用。你可以这样改变。
<script>
function OnSelectedIndexChange() {
if (document.getElementById('productSel').value == "0"){
document.getElementById("Option1").style.display = "block";
document.getElementById("Option2").style.display = "none";
document.getElementById("Option3").style.display = "none";
}
else if (document.getElementById('productSel').value == "1"){
document.getElementById("Option1").style.display = "none";
document.getElementById("Option2").style.display = "block";
document.getElementById("Option3").style.display = "none";
}
else if (document.getElementById('productSel').value == "2"){
document.getElementById("Option1").style.display = "none";
document.getElementById("Option2").style.display = "none";
document.getElementById("Option3").style.display = "block";
}
};
</script>
每次重新定义函数时都会替换它。它只会执行value == "2"
版本。
至少,您需要将所有条件放在函数的单个副本中。
相关文章:
- javascript来显示元素属性
- 使用JavaScript或jQuery隐藏和显示元素
- 如何在Angular JS中滚动显示元素
- 如何在使用jQuery应用display:none后正确显示元素
- 仅使用Javascript隐藏/显示元素,而不会弄乱DOM
- jQuery单击并显示元素列表
- 键盘没有在Android和BlackBerry中显示元素焦点
- 在CSS转换期间显示元素的大小值
- 当我们关注jQuery时,只显示元素
- 包含方法和突出显示元素的问题
- JS/JQuery隐藏元素,更改文本,显示元素
- 如何显示元素的一部分,并在单击时切换到所有元素
- 在隐藏元素中显示元素
- 当PROTRACTOR元素后面有元素时,我怎么能知道当前的显示元素
- 在mouseover上显示元素在mouseleave上隐藏
- jquery显示元素是否具有类和特定值的内容
- 不能在复选框旁边显示元素
- 动态显示元素上的JavaScript触摸端;不要开火
- 点击JQuery/HTML5显示元素的索引/位置
- AngularJS:如何默认显示元素,并在按下按钮时切换