2012-03-21 54 views
1

我有一個子菜單內的另一個子菜單的HTML。我要的是在頁面加載,如果一個子子裏有父切換及其母公司來切換類turnedon,所以含鋰帶班的李開啓都是可見的..jQuery切換父母李?

HTML:

<ul class="NewsSubMenu"> 
    <li class="NewsSubMenuOn" style="margin-left:-1.7px;"> 
     <span style="padding-left:35px; color:White;"> News Archive</span> 
     <ul class="NewsArchive"> 
      <li class="off"> 
      <a href="#" class="year">2012</a>     
       <ul class="NewsMonths"> 
         <li class="off"> 
          <a href="#" class="month">March</a> 
           <ul class="NewsArt"> 
             <li class="turnedon"> 
              News Headline 
             </li> 
           </ul> 
         </li> 
         <li class="off"> 
          <a href="#" class="month">February</a> 
           <ul class="NewsArt"> 
             <li> 
              Title          </li> 
           </ul> 
         </li> 
       </ul> 
      </li> 
      <li class="off"> 
      <a href="#" class="year">2011</a>     
       <ul class="NewsMonths"> 
         <li class="off"> 
          <a href="#" class="month">March</a> 
           <ul class="NewsArt"> 
             <li> 
             PVC4PIPES 
             </li> 
           </ul> 
         </li> 
       </ul> 
      </li> 
     </ul> 
     </li> 
    </ul> 

CSS:

.NewsSubMenuOn ul li.off ul { 
display:none; 

}

的jquery:

$(document).ready(function() { 
    $(".turnedon").parent().parent().toggle(); 
}); 

我的jquery不工作?

+0

您是否嘗試過只爲測試而顯示隱藏 – zod 2012-03-21 15:46:02

回答

0

步行DOM樹,顯示父元素,直到你的元素可見:

var target = $(".turnedon").show(); 
var parent = target.parent(); 
while(target.is(":hidden")) { 
    parent.show(); 
    parent = parent.parent(); 
} 

演示:http://jsfiddle.net/4arWQ/

0

嘗試指定它應該看什麼類型的家長:

$(document).ready(function() { 
    $(".turnedon").parent('ul').parent('ul').toggle(); 
}); 

如果你看看你的代碼路徑,如果你去的父()父(),您的選擇與類月份AHREF。

+0

這是行不通的。如果父元素不是'ul',則返回空的jQuery對象。 – gilly3 2012-03-21 15:51:13