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元素时,他们为他们的孩子添加一个类ul(仅最接近ul,而不是全部ul在其中)。

怎么做?

对不起,我的英语不好。

4

3 回答 3

2

尝试

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

演示:小提琴

于 2013-10-02T04:02:52.397 回答
1
$('li:has(ul)').click(function () {
    $(this).children('ul').addClass('ClassName');
});

参考

。点击()

.addClass()

:有()

如果您想为 li 中的所有 ul 元素添加类,请使用 .find()

$('li:has(ul)').click(function () {
    $(this).find('ul').addClass('ClassName');
});
于 2013-10-02T04:01:32.367 回答
1

像这样 ?

$('li').on('click', function(){
    // > mean one level children
    $('> ul', this).addClass('yourClass');
});
于 2013-10-02T04:11:55.810 回答