我发现很难找到使用 jQuery 的示例,所以我很抱歉问这么简单的问题。我有这个 ul:
<ul id="navLinks">
<li class="selected" id="homeNavLink"></li>
<li id="aboutNavLink"></li>
<li id="contactNavLink"></li>
...
</ul>
我想编写一个函数来更改哪个 li 具有“selected”类。这是我的尝试:
function changeNavLink(selectedId) {
$("#navLinks li").each(function() {
$(this).removeClass("selected");
});
$("#" + selectedId).addClass("selected");
}
我做错了什么?
最佳答案
您不必执行 .each
- 类似 removeClass
的函数可以很好地处理一组元素。
function changeNavLink(selectedId) {
$("#navLinks li").removeClass('selected')
.filter('#' + selectedId)
.addClass('selected');
}
应该可以。它所做的就是选择所有 li
元素,从所有元素中删除 selected
类,filtering them out仅添加到传递了 ID 的类,并将 selected
类添加到该类。
Here is a working link显示上面的代码的工作情况。
关于jQuery 选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/735910/