JQuery/JavaScript:如果元素类有img子级,则替换它

JQuery / JavaScript: Replace element class if it has img child

本文关键字:子级 img 替换 JavaScript 如果 元素 JQuery      更新时间:2023-09-26

如果.nav li的类Col1具有image子元素,或者div具有类NavItemHolder,我将尝试替换该类,并将该类更改为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项中,也将

由于初始选择器中有空格,它将查找任何.nav的后代li。直接子代使用以下内容:

$('.nav>li:has(img)').removeClass('Col1').addClass('Col2')