获取具有特定类的子元素的父元素

时间:2009-11-07 12:20:16

标签: jquery css css-selectors

我有一个这样的嵌套菜单:

<ul id="menu">
    <li>Home
        <ul>
            <li>New</li>
            <li class="selected">Open</li>
            <li>Folder</li>
        </ul>
    </li>
    <li>Another menu
        <ul>
            <li>submenu item 1</li>
            <li>submenu item 2</li>
            <li>submenu item 3</li>
        </ul>
    </li>
</ul>

现在我正在尝试更改第一个LI元素(包含Home的元素)的类,因为它有一个带有“selected”类的子元素。这可能使用jQuery吗?

3 个答案:

答案 0 :(得分:7)

捕捉目标的更快,更精确的方法。

$("li.selected").parents("#menu").addClass('foo');

更新为第一个孩子添加一些课程。

$("li.selected").parents("#menu").addClass('foo').find('li:first').addClass('bar');

我还建议您阅读jQuery Traversing文档。

答案 1 :(得分:2)

您可以使用此语法执行此操作。

$('.selected').parent().parent().addClass('foo').removeClass('bar');

答案 2 :(得分:1)

尝试

$('li.selected').parent().closest('li').addClass('foo');

编辑:对不起,只使用最接近会让它自己定位。

或者您可以使用:

$('li.selected').closest('li:not(".selected")').addClass('foo');