我正在尝试制作一个导航菜单,当涉及到 javascript 时,我完成了所有的 HTML 和 CSS ,我在中间感到震惊,我能够向元素添加一个类,但我无法删除该类的剩余元素。请帮我解决一下这个。
这是我的代码
<!DOCTYPE html>
<html>
<head>
<title>Navigation class Toggling</title>
<style type="text/css">
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
header {
width: 100%;
height: auto;
max-width: 600px;
margin: 0 auto;
}
nav {
width: 100%;
height: 40px;
background-color: cornflowerblue;
}
ul {
list-style-type: none;
}
li {
display: inline-block;
}
a {
text-decoration: none;
padding: 8px 15px;
display: block;
text-transform: capitalize;
background-color: darkgray;
color: #fff;
}
a.active {
background-color: cornflowerblue;
}
</style>
</head>
<body>
<header>
<nav>
<ul onclick="myFunction(event)">
<li><a href="#">home</a></li>
<li><a href="#">about</a></li>
<li><a href="#">service</a></li>
<li><a href="#">profile</a></li>
<li><a href="#">portfolio</a></li>
<li><a href="#">contact</a></li>
</ul>
</nav>
</header>
<script type="text/javascript">
function myFunction(e) {
e.target.className = "active";
}
</script>
</body>
</html>
这是我的 Codepen
原文由 Venu Madhav 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用
document.querySelectorAll
找到当前具有active
类的元素,然后您可以删除该类。JSFIDDLE
代替
document.querySelectorAll
你也可以使用document.querySelector
JSFIDDLE 2
编辑
您可以使用 document.queryselector 选择具有
active
类的元素,而不是遍历整个集合。还向 ul 提供id
以便您可以定位特定元素