jQuery: выбрать всех родителей выбранного элемента LI - PullRequest
0 голосов
/ 14 января 2012

У меня есть иерархический список 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 ]

6 голосов
/ 14 января 2012

Следующее связывает событие click со всеми элементами <li> и буквально применяет цвет фона ко всем родителям и себе.

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

jQuery docs:

1 голос
/ 14 января 2012

При условии, что оба элемента A и B являются элементами UL, должен работать следующий код:

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