jQuery选择器

cor*_*ore 5 jquery css-selectors

我发现很难找到使用jQuery的例子,所以我不好问这么简单的问题.我有这个ul:

<ul id="navLinks">
    <li class="selected" id="homeNavLink"></li>
    <li id="aboutNavLink"></li>
    <li id="contactNavLink"></li>
    ...
</ul>
Run Code Online (Sandbox Code Playgroud)

我想编写一个函数来改变哪个li有"selected"类.这是我的尝试:

function changeNavLink(selectedId) {
    $("#navLinks li").each(function() {
        $(this).removeClass("selected");
    });
    $("#" + selectedId).addClass("selected");
}
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

Pao*_*ino 8

你不必这样做.each- 像removeClass可以处理一组元素的函数就好了.

function changeNavLink(selectedId) {
    $("#navLinks li").removeClass('selected')
                     .filter('#' + selectedId)
                     .addClass('selected');
}
Run Code Online (Sandbox Code Playgroud)

应该管用.它正在做的是选择所有li元素,selected从所有元素中删除它们,将它们过滤到只传递了ID的那个元素,并将类添加到那个元素中selected.

这是一个显示上述代码的工作链接.