我正在尝试替换Col1
的类.nav li
,如果它具有带有图像的子元素,或者具有类NavItemHolder
的div,并将类更改为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>
我尝试过:
$('.nav li:has(img)').removeClass('Col1').addClass('Col2')
但这也将类Col2添加到内部li项目中
最佳答案
由于初始选择器中的空间,它会找到作为li
的后代的任何.nav
。对于亲生子女,请使用以下内容代替:
$('.nav>li:has(img)').removeClass('Col1').addClass('Col2')