jQuery:选择所选LI元素的所有父元素

时间:2012-01-14 17:35:50

标签: jquery html-lists

我有一个分层的UL列表。如何 - 使用jQuery - 获取所选LI元素的所有父元素并更改每个父元素内的<a>背景颜色?

<ul id="nav">
    <li>
        <a href="#">A</a>
        <ul>
            <li>
                <a href="#">B</a>
                <ul>
                    <li><a href="#">B1</a></li>
                    <li><a href="#">B2</a></li>
                    <li><a href="#">B3</a></li>

                    <li><a href="#">B4</a></li>
                    <li><a href="#">B5</a></li>
                </ul>
            </li>
            <li>
                <a href="#">C</a>
                <ul>
                    <li><a href="#">C1</a></li>
                    <li><a href="#">C2</a></li>
                    <li><a href="#">C3</a></li>
                </ul>
            </li>
        </ul>

如果我是选择<a href="#">B4</a><a href="#">B</a><a href="#">A</a>也将被选中

2 个答案:

答案 0 :(得分:6)

以下内容会将click事件绑定到所有<li>元素,并将字面背景颜色应用于所有父母及其自身。

$('li').click(function() {
    $(this).parents().andSelf().css('background-color', 'red');
});

jQuery docs:

答案 1 :(得分:1)

假设A和B都是UL元素,则以下代码应该起作用:

$(this).parents('ul').addClass('new_class');