javascript - 如何定位特定的 div 然后切换类?
问题描述
例如,我有这个菜单:
function toggleHiddenContent(tabClass) {
let t = document.querySelectorAll(tabClass);
for(var i = 0; i<t.length; i++) {
t[i].classList.toggle="visible-class";
}
}
.hidden-content {
display: none;
}
.visible-class {
display: block
}
<div>
<a class="main-holder" onClick="toggleHiddenContent('.main-holder')">Main one</a>
<div class="hidden-content">Hidden content One</div>
<a class="main-holder" onClick="toggleHiddenContent('.main-holder')">Main two</a>
<div class="hidden-content">Hidden content two</div>
</div>
但是,它会为所有类切换。我确实了解问题所在,但我将如何仅匹配被点击的而不是非活动(点击)的?
我在香草js中需要它
多谢你们
解决方案
classList.toggle
是一个函数,而不是一个可分配的属性
https://developer.mozilla.org/en-US/docs/Web/API/Element/classList
尝试这个
function toggleHiddenContent(tabClass) {
let t = document.querySelectorAll(tabClass);
for (var i = 0; i < t.length; i++) {
t[i].classList.toggle("visible-class");
}
}
根据您的示例,我建议您进行一些小的更改,这将提高可读性,例如设置父级<div>
(便于查找父级)以及onClick
从 HTML 中删除。一探究竟
从下面的答案中,我不知道nextElementSibling
,这不需要您像我建议的那样更改您的 HTML
推荐阅读
- typescript - 在 foreach 循环中进行多个 http 调用异步
- javascript - 模态窗口覆盖div没有覆盖整个页面,当页面向下滚动时,在角度js中
- javascript - 如何将 c++ 多线程代码转换为 javascript?
- python - 以编程方式更改 Windows 分辨率
- excel - 在excel中使用VB根据标准在工作表之间复制值
- sql - SQL 中每行相对于列总和的百分比值
- logging - 无法在 log4j2 中禁用来自 3rd 方 jar 的日志
- javascript - 使用 jQuery 将 JSON 字符串转换为数据表
- azure - Azure Batch 帐户静态 IP 地址
- python-3.x - 如何在 Heapq 中查找元素的位置