jQuery:当子类具有类时,将类添加到父元素

时间:2013-09-02 07:24:10

标签: jquery css

我正在尝试将类“.open”添加到具有类.showme的子类的父li 到目前为止,我已经尝试了几件事(prev,prevAll,has等),但我无法做到。

这是我的html结构,还有一个jsFiddle可供使用。任何建议将不胜感激。

<ul class="product-categories">
    <li class="sub">
        <a href="#">Women</a>
        <ul>
            <li class=""> <a href="#">Clothing</a></li>
            <li class="showme"> <a href="#">Footwear</a></li>
        </ul>
    </li>
    <li class="no-sub"> <a href="#">Men</a></li>
    <li class="no-sub"> <a href="#">Children</a></li>
    <li class="offers"> <a href="#">Offers</a></li>
</ul>

$(".showme").prevAll("li.sub:first").addClass("open")

4 个答案:

答案 0 :(得分:2)

使用.closest(),找到类.showme的第一个元素,然后找到与class sub最近的父li

$('.showme:first').closest('li.sub').addClass('open');

答案 1 :(得分:0)

$(".showme").closest("li.sub:first").addClass("open");

参见参考资料 closest

答案 2 :(得分:0)

您需要使用closest()代替prev()作为上一个,而prevAll()将查看以前的兄弟姐妹,您需要搜索父级。您可能不需要:首先在选择器中,因为cloest将返回单个元素。

<强> Live Demo

$(".showme").closest("li.sub").addClass("open")

作为补充说明,您没有在给定小提琴上包含必需的js library

答案 3 :(得分:0)

这个怎么样?

$('.showme').closest('li.sub').addClass('open');