javascript - 如何将类添加到 div?
问题描述
这是我的点击功能。
function toggleActiveClass(e){
console.log(e);
}
这是我调用函数的地方
<a href="#" onclick="toggleActiveClass(this)" class="link--no-decor link--dark">
这是它在控制台中返回的输出
<a href="#" onclick="toggleActiveClass(this)" class="link--no-decor link--dark">
<li>
<div class="menu-item menu-item--google menu-item--radio">
<span>...</span>
<span class="va-middle">
Personal info
</span>
</div>
</li>
</a>
我想像这样在该锚标记内的 div 标记中添加“活动”类。
<a href="#" onclick="toggleActiveClass(this)" class="link--no-decor link--dark">
<li>
<div class="menu-item menu-item--google menu-item--radio active">
<span>...</span>
<span class="va-middle">
Personal info
</span>
</div>
</li>
</a>
尝试使用这个
function toggleActiveClass(e){
e.target.childNodes[1].addClass("active");
}
但它没有用。如何将活动类添加到 div?使用 JavaScript。
解决方案
它不起作用,因为它不是DOM 节点addClass
的方法。
您需要更改班级列表:
function toggleActiveClass(link)
{
let div = link.querySelector('.menu-item');
div.classList.toggle('active');
}
.active
{
color:red;
}
<a href="#" onclick="toggleActiveClass(this)" class="link--no-decor link--dark">
<li>
<div class="menu-item menu-item--google menu-item--radio">
<span>...</span>
<span class="va-middle">
Personal info
</span>
</div>
</li>
</a>
I have other div with active class i want to remove the active class from that div?
I'd have to know the rest of your document's structure, but at a guess:
function toggleActiveClass(link)
{
let currentActive = document.querySelector('.menu-item .active');
currentActive.classList.remove('active');
let newActive = link.querySelector('.menu-item');
newActive.classList.add('active');
}
推荐阅读
- excel - 如何从 vlookup 中获取一个单元格中的多个列?
- c# - C#:如何从包含抽象类的 IReadOnlyList 中获取派生类的值
- angular - Angular6,无法预定义 styleUrls
- video - 计算机视觉 - 从多个摄像头组装单个大型视频流
- c - 如果 SEQ 为空,则不要扩展 BOOST_PP_SEQ_FOR_EACH
- python - 使用 CNN 进行时间序列分类
- python - 在多个文件中更快地搜索多个模式?
- python - 从 txt 文件中提取特定数字并将其插入数据框中
- java - 是什么让异步单线程 java 代码异步
- java - 多次调用 Kafka Streams StreamBuilder.build() 可以吗