我试图显示一个div,并隐藏其他div时,选择元素持有相应的值。
我创建了一个有4个选项的选择元素,默认值为空,加上其他三个选项,lower,upper,higher。我在下面放置了三个隐藏的div元素,其中包含3个选项中的每一个的内容:下,上,再上。我想根据select元素的值显示和隐藏每个div。下面是我的代码:
const departments = document.querySelector("#departments");
const lowerdep = document.querySelector(".lower-dep");
const upperdep = document.querySelector(".upper-dep");
const higherdep = document.querySelector(".higher-dep");
if (departments.value = "") {
lowerdep.style.display = "none";
upperdep.style.display = "none";
higherdep.style.display = "none";
} else if (departments.value = "lower") {
lowerdep.style.display = "block";
} else if (departments.value = "upper") {
upperdep.style.display = "block";
} else {
higherdep.style.display = "block";
}
.lower-dep,
.upper-dep,
.higher-dep {
display: none;
}
<div class="">
<div class="">
<label class="">Department
<select id="departments" name="departments">
<option value="" selected>Select Department...</option>
<option value="lower">Lower</option>
<option value="upper">Upper</option>
<option value="higher">Higher</option>
</select>
</label>
</div>
</div>
<div class="lower-dep">
<div class="input-check">
<input type="checkbox" id="color1" name="color1" value="Red">
<label for="color1"> Red</label>
</div>
</div>
<div class="upper-dep">
<div class="input-check">
<input type="checkbox" id="color1" name="color1" value="Red">
<label for="color1"> Red</label>
</div>
</div>
<div class="higher-dep">
<div class="input-check">
<input type="checkbox" id="color1" name="color1" value="Red">
<label for="color1"> Red</label>
</div>
</div>
2条答案
按热度按时间bsxbgnwa1#
1.还添加了一个
eventListener
来隐藏和显示基于选择的元素,并根据需要删除或添加d-none
类。1.您的
if/else
语句也是错误的=
用于赋值,==
用于比较。你也可以像我的例子一样使用switch case
。l5tcr1uw2#
您需要将其 Package 在事件侦听器中,并在显示之前隐藏所有元素:
这样,每当用户选择一个选项时,就会显示相应的
div
,而其余的则被隐藏。另外,你需要在if语句中用
==
替换每个=
,因为javascript中的=
是赋值的,所以如果你赋值为true,if语句就会运行。您可能正在寻找==
,即相等比较运算符。完整片段: