javascript - 类列表切换不会为 div 添加/切换类名
问题描述
我的目标是每次按下按钮时显示一个列表,有点像下拉列表,所以我制作了一种测试 html、css 和 js 文件,但不知何故它不起作用,我的 js 代码中的 log 函数输出这个词控制台上的“年份”,但类列表切换似乎没有更改/添加 div 类上的“活动”。
下面是我的js。
function btnFunction(identifier){
console.log(identifier)
var element = document.getElementById(identifier);
element.classList.toggle("active");}
下面是我的html。
<div class="modal-content-col-6-drop">
<button onclick="btnFunction('year')" class="drop-btn">sample</button>
</div>
<div id="year" class="select">
<ul>
<li>0 Year</li>
<li>1 Year</li>
</ul>
</div>
下面是我的CSS。
#year{
display: none;
}
.active{
display: block;
}
解决方案
基于 id 的 css 选择器优先于基于类的选择器。display: none
因此,即使课程处于活动状态,id 年份也将始终存在。因此,最好的解决方案是不要将 ids 用于 css 选择器。
更好的解决方案是
.select{
display: none;
}
.select.active{
display: block;
}
您可以在此处阅读有关选择器特异性的更多信息。
我将在此处包含一个显示此内容的片段:
function btnFunction(identifier){
console.log(identifier)
var element = document.getElementById(identifier);
element.classList.toggle("active");
}
.select{
display: none;
}
.select.active{
display: block;
}
<html>
<body>
<div class="modal-content-col-6-drop">
<button onclick="btnFunction('year')" class="drop-btn">sample</button>
</div>
<div id="year" class="select">
<ul>
<li>0 Year</li>
<li>1 Year</li>
</ul>
</div>
</body>
</html>
推荐阅读
- reactjs - React Native:DOMException:无法在'WorkerGlobalScope'上执行'importScripts':脚本a
- ag-grid - Ag-Grid. How to send slots to "ag-side-bar"?
- php - 具有多个类别的数据库项目
- java - Spring Boot Application.properties 没有自动完成建议
- python - 在公司受限电子表格上使用 google sheet api 检索 google sheet 值
- regex - 从 Powershell 中的连接字符串获取数据库名称的最优雅方法是什么?
- clickhouse - ClickHouse 是否支持静态加密?
- ruby-on-rails - 作为微服务的弹性搜索实现
- java - 在 from.as 中的发送邮件中添加标题,如“堆栈溢出
" - google-apps-script - 复制粘贴保持原始格式 | 用于 GSheets 的 Google Apps 脚本