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

时间:2014-08-28 08:40:28

标签: javascript jquery html

我正在尝试替换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项目

1 个答案:

答案 0 :(得分:4)

由于您的初始选择器中有空格,因此发现任何li都是.nav的后代。使用以下代替直接儿童:

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