我正在尝试替换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')

07-24 09:38
查看更多