0

我想选择 li(子菜单)中没有“active-trail”类的所有 ul.menu

HTML:

<ul class="menu">
    <li>item 1</li>
    <li class="expanded">item 2
         <ul class="menu">
             <li>sub item a</li>
             <li>sub item b</li>
             <li>sub item c</li>
         </ul>
    </li>
    <li class="expanded">item 3
         <ul class="menu">
             <li>sub item d</li>
             <li>sub item e</li>
             <li>sub item f</li>
         </ul>
    </li>
    <li class="expanded active-trail">item 4
         <ul class="menu">
             <li>sub item g</li>
             <li>sub item h</li>
             <li>sub item i</li>
         </ul>
    </li>
</ul>

查询:

$('#region-menu ul.menu > li.expanded:not:has(active-trail) ul.menu ').addClass('hidden')
4

3 回答 3

2

这是小提琴

$('ul.menu > li.expanded:not(.active-trail) ul.menu ').addClass('hidden');
于 2013-08-23T07:03:17.637 回答
2

这将做:

$('li.expanded:not(.active-trail) ul.menu').addClass('hidden');

你很接近,但你需要的选择器:not()是类.active-trail

演示小提琴

于 2013-08-23T06:58:10.370 回答
1

这应该工作

$("li.expanded ul").parent(':not(.active-trail)')

演示小提琴

于 2013-08-23T07:00:30.527 回答