jquery <li> событие click для дочерних элементов

0

HTML

<ul id="wrapper">
    <li>
        <ul class="pr">
            <li>
                <ul class="pr">
                    <li></li>
                    <li></li>                       
                </ul>
            </li>
            <li>
                <ul class="pr">
                    <li></li>
                    <li></li>                       
                </ul>
            </li>
        </ul>
    </li>
    <li>
        <ul class="etc">
            <li>
                <ul class="etc">
                    <li></li>
                    <li></li>                       
                </ul>
            </li>
            <li>
                <ul class="etc">
                    <li></li>
                    <li></li>                       
                </ul>
            </li>
        </ul>
    </li>
</ul>

Я хочу, когда вы нажимаете на каждый элемент li, добавляет класс к своим li элементам ul (ближе всего ul, а не все ul внутри них).

Как это сделать?

Извините за мой плохой английский.

Теги:
children

3 ответа

1
Лучший ответ

Пытаться

$('#wrapper li:has(ul)').click(function (e) {
    $(this).children('ul').toggleClass('myclass');
    e.stopPropagation();
})

Демо: скрипка

  • 0
    благодарю вас! но я хочу их добавить класс ближайших детей ul только, не все ul внутри них.
  • 0
    класс добавляется только к этому ul, но все остальные элементы наследуют свойство
Показать ещё 2 комментария
1

Как это?

$('li').on('click', function(){
    // > mean one level children
    $('> ul', this).addClass('yourClass');
});
1
$('li:has(ul)').click(function () {
    $(this).children('ul').addClass('ClassName');
});

Рекомендации

.click()

.addClass()

: есть()

если вы хотите добавить класс ко всем ul-элементам внутри li. find()

$('li:has(ul)').click(function () {
    $(this).find('ul').addClass('ClassName');
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню