jQuery 选择器

标签 jquery css-selectors

我发现很难找到使用 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/

相关文章:

JavaScript - 需要一种方法来设置元素的 OuterHeight

javascript - 使用 Jquery 禁用特定列的 click fot td

javascript - 我怎样才能改变 IE 中选择标签的这种行为

html - 通过纯 CSS 选择一对 <br> 元素中的一个

CSS:不在 span 标签内的文本的选择器

javascript - 无法获取表单面板的 x 和 y 坐标并在加载时从 cookie 中设置它们

javascript - 每次循环查找函数是否存在?

html - 使用 CSSSelector 从下拉列表中选择第一个选项

html - 使用CSS选择没有兄弟的嵌套第一个子元素

html - Asp.Net-MVC:如何使用 Css 设置 <%=Html.ActionLink()%> 的样式?