Vanilla Javascript: toggling a class name on each element of a list one so that only item at time has the desired class(Vanilla Java脚本:在列表的每个元素上切换一个类名,以便每次只有一项具有所需的类)
问题描述
我有一个导航栏。
若要开始,仅第一个链接(主页)的类为"Active"。
我希望实现以下目标: 当用户单击不同的链接时,Active类将从存在的位置移除,并归因于用户单击的链接。 以便一次只有一个链接处于活动状态。
const links = document.querySelectorAll('.navbar ul li a');
links.forEach((link) => {
link.addEventListener('click', () => {
link.classList.toggle('active');
});
});
.active {
background-color: #fc9d03;
}
<div class="navbar">
<ul>
<li><a href="#" class="active">Homepage</a></li>
<li> <a href="#">Blog Entries</a></li>
<li><a href="#">Food Gallery</a></li>
<li> <a href="#">Contact Us</a></li>
</ul>
</div>
推荐答案
我稍微编辑了您的代码段。
在事件侦听器功能上,您可以通过过滤掉所有链接中单击的链接来停用所有链接。
然后,您可以从这些链接中删除激活类,并将其添加到单击的链接中。
const links = document.querySelectorAll('.navbar ul li a');
links.forEach((link) => {
link.addEventListener('click', () => {
const notClickedLinks = Array.from(links).filter((notClickedLink) => {
return notClickedLink !== link;
});
notClickedLinks.forEach((notClickedLink) => {
notClickedLink.classList.remove('active');
});
link.classList.add('active');
});
});
.active {
background-color: #fc9d03;
}
<div class="navbar">
<ul>
<li><a href="#" class="active">Homepage</a></li>
<li><a href="#">Blog Entries</a></li>
<li><a href="#">Food Gallery</a></li>
<li><a href="#">Contact Us</a></li>
</ul>
</div>
这篇关于Vanilla Java脚本:在列表的每个元素上切换一个类名,以便每次只有一项具有所需的类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Vanilla Java脚本:在列表的每个元素上切换一个类名,以便每次只有一项具有所需的类
基础教程推荐
- CORS:当凭据标志为真时,无法在 Access-Control-Allow-Origin 中使用通配符 2022-01-01
- 最佳动态 JavaScript/JQuery 网格 2022-01-01
- 当木偶师打开Chrome时,不能使用Chrome扩展 2022-01-01
- HTML5 画布调整为父级 2022-01-01
- 使用 jQuery 在悬停时交换 DIV 类 2022-01-01
- 在 Javascript 中使用 Fetch API 上传文件并显示进度 2022-01-01
- 从快速中间件中排除路由 2022-01-01
- 带角度的选项卡:仅使用 $http 在单击时加载选项卡 2022-01-01
- 逻辑运算符 ||在 javascript 中,0 代表 Boolean false? 2022-01-01
- 即使每次插入第一个输入的值不同,第二个输入仍显示相同的输入值 2022-01-01
