我有一个简单的HTML菜单:
<ul id="menu">
<li><a id="admin" onclick="changeActive('admin');" class="active a red">Admin</a></li>
<li><a id="dash" onclick="changeActive('dash');" class="a black">Dash</a></li>
<li><a id="notifs" onclick="changeActive('notifs');" class="a black">Notifs</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
我们的想法是动态更改活动元素.
我目前的职能是:
function changeActive(id)
{
document.getElementById(id).className += "active a red";
var c = document.querySelectorAll("ul a");
for (i in c)
{
fav = c[i].attributes[0];
if(fav.value!=id)
{
console.log(fav.value);
document.getElementById(fav.value).className += "a black";
}
}
}
Run Code Online (Sandbox Code Playgroud)
有更有效的解决方案吗?谢谢!
请注意我已删除,+=因此您不必每次都添加相同的类.
function changeActive(id) {
var c = document.querySelectorAll("ul a");
var i;
for (i in c) {
c[i].className = 'a black';
}
//update it at last
document.getElementById(id).className = "active a red";
}
Run Code Online (Sandbox Code Playgroud)