2014-08-28 50 views
0

我試圖取代之類的.nav liCol1如果它與圖像的子元素,或NavItemHolder類股利,並更改類Col2JQuery的/ JavaScript的:替換元素類,如果有孩子的IMG

<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> 

我tryed:

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

但是這增加了類col2的到內裏的物品也

+0

只是檢查whther它工作:找到()$(」導航李 ')找到(' IMG ')removeClass(' Col1中 ')addClass('。 Col2') – 2014-08-28 08:43:17

回答

4

由於在您的初始選擇器中的空間,它發現任何li這是.nav的後裔。使用下面,而不是直接孩子:

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

謝謝James,我忽略了這一點。 – alex 2014-08-28 08:58:05

相關問題