我正在尝试替换Col1
的类.nav li
,如果它有一个带有图像的子元素,或者一个带有类NavItemHolder
的div,并将该类更改为{{1} }}
Col2
我试过:
<ul class="nav">
<li class="Col1">
<a class="lvl1 parent" href="#/">Option1</a>
<ul>
<li>SubOption1</li>
</ul>
</li>
<li class="Col1">
<a class="lvl1 parent" href="#">Option2</a>
<ul>
<li>
<div class="NavItemHolder">
<div class="NavItemImage">
<a href="#">
<img src="/menu.jpg"></a>
</div>
<div class="NavItemDesc">
<a href="#">SubOption2</a>
</div>
</div>
</li>
</ul>
</li>
</ul>
但这会将类Col2添加到内部li项目
答案 0 :(得分:4)
由于您的初始选择器中有空格,因此发现任何li
都是.nav
的后代。使用以下代替直接儿童:
$('.nav>li:has(img)').removeClass('Col1').addClass('Col2')