jQuery选择无序列表中的所有锚元素

时间:2012-10-17 21:36:48

标签: jquery html

我有一个带有以下结构的无序列表。

如果单击列表项1中的链接,我希望能够选择列表项1下面的所有链接(锚标记),并将类更改为“是”。

如何?

    <ul>
        <li><div><span><a class="no" href="#">List Item 1</a></span></div>
            <ul>
                <li><div><span><a class="no" href="#">Sub List Item 1</a></span></div></li>
                <li><div><span><a class="no" href="#">Sub List Item 2</a></span></div>
                    <ul>
                        <li><div><span><a class="no" href="#">Sub Sub List Item 1</a></span></div></li>
                        <li><div><span><a class="no" href="#">Sub Sub List Item 2</a></span></div></li>
                        <li><div><span><a class="no" href="#">Sub Sub List Item 3</a></span></div></li>
                    </ul>
                </li>
                <li><div><span><a class="no" href="#">Sub List Item 3</a></span></div></li>
            </ul>
        </li>
        <li><div><span><a class="no" href="#">List Item 2</a></span></div>
            <ul>
                <li><div><span><a class="no" href="#">Sub List Item 5</a></span></div></li>
                <li><div><span><a class="no" href="#">Sub List Item 6</a></span></div></li>
                <li><div><span><a class="no" href="#">Sub List Item 7</a></span></div></li>
            </ul>
        </li>
    </ul>

答案

        $(href).closest('li').find('a').each(function (index, child) {
            $(child).removeClass('no').addClass('yes');
            //Do more logic here
        });

1 个答案:

答案 0 :(得分:1)

$('.no').on('click', function () {
    $(this).closest('li').find('a').andSelf().addClass('yes').removeClass('no');
});