我正在尝试将类“.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")
答案 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');