javascript - 根据下拉列表和单选选择切换一组 div 的条件
问题描述
根据下拉列表和单选选择切换一组 div 的条件
我需要一种方法来根据下拉列表的选择以及是否选择了单选按钮来切换一组 div。这将是一个切换,而不是两个单独的 div 实例
下拉 = 如果 1 = 显示 div1,如果 2 = 显示 div2,如果 3 = 显示 div3,如果 4 = 显示 div4
如果选择“订阅”单选,则下拉菜单将切换 4 个不同的 div 并隐藏以前的 - Dropdown = If 1 = Show div5, If 2 = Show div6, If 3 = Show div7, If 4 = Show div8
<Select id="dropdown">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
<option value="4">Four</option>
</Select>
<input type="radio" name="subscription" id="subscription" value="">
<!-- If subscription is NOT selected, dropdown toggles these -->
<div id="div1">Some content aaa</div>
<div id="div2" style="display: none">Some content bbb</div>
<div id="div3" style="display: none">Some content ccc</div>
<div id="div4" style="display: none">Some content ddd</div>
<!--If subscription IS selected, dropdown toggles these -->
<div id="div5" style="display: none">Some content fff</div>
<div id="div6" style="display: none">Some content ggg</div>
<div id="div7" style="display: none">Some content hhh</div>
<div id="div8" style="display: none">Some content iii</div>
解决方案
只需添加一个类来告诉组 appart
<Select id="dropdown">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
<option value="4">Four</option>
</Select>
<input type="radio" name="subscription" id="subscription" value="">
<!-- If subscription is NOT selected, dropdown toggles these -->
<div><strong>NOT</strong> subscription</div>
<div id="div1" class="to-toggle not-subscription" style="display: none">1 Some content bbb</div>
<div id="div2" class="to-toggle not-subscription" style="display: none">2 Some content ccc</div>
<div id="div3" class="to-toggle not-subscription" style="display: none">3 Some content ddd</div>
<div id="div4" class="to-toggle not-subscription" style="display: none">4 Some content ddd</div>
<!--If subscription IS selected, dropdown toggles these -->
<div>Subscription</div>
<div id="div1" class="to-toggle subscription" style="display: none">1 Some content fff</div>
<div id="div2" class="to-toggle subscription" style="display: none">2 Some content ggg</div>
<div id="div3" class="to-toggle subscription" style="display: none">3 Some content hhh</div>
<div id="div4" class="to-toggle subscription" style="display: none">4 Some content iii</div>
const select = document.querySelector('#dropdown')
const subscription = document.querySelector('#subscription')
select.addEventListener('change', e => {
// hide all divs
const divs = document.querySelectorAll('.to-toggle')
for(let div of divs){
div.style.display = 'none'
}
// check if radio is checked, then affect desired div
if (subscription.checked) {
document.querySelector(`#div${e.target.value}.subscription`).style.display = 'block'
} else {
document.querySelector(`#div${e.target.value}.not-subscription`).style.display =
'block'
}
})
在此处查看演示
推荐阅读
- javascript - 如何根据列表中的标签链接提交按钮?
- swiftui - 如何在 SwiftUI 中为函数定义默认的空输入内容?
- python - Python 命令行中的语法“SOME_VAR=/some/path python pythonFile.py”是什么?
- java - 我无法截断要比较的数字
- reactjs - Webpack/Babel/React 项目上的“当前未启用对实验语法 'jsx' 的支持”
- tensorflow - 如何在下面的代码中找到分配给验证集的每个图像的标签?
- android - Android 10 及更高版本的 Scoped Storage 应用程序崩溃,将图像上传到服务器
- javascript - 获取 URL 时如何删除“localhost:3000”
- sql-server - 无法为 .Net Core 3.1 搭建登录页面。错误:运行选择的代码生成器包还原失败时出错
- android - Kotlin:将数据传递给片段