2011-12-27 141 views
0

我有菜單結構如下圖所示,我怎樣才能得到特定的李先前的李類名?

<ul> 
    <li class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-1406 current_page_item menu-item-7482 white">one</li> 

    <li class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-1406 current_page_item menu-item-7482 orange">two</li> 

    <li class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-1406 current_page_item menu-item-7482 white">three</li> 

    <li class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-1406 current_page_item menu-item-7482 orange">four</li> 

    <li class="signup_login orange"><a title="Sign up" href="/login?status=d&amp;login=setsignup" style="font-size: 14px; font-family: 'AmerTypeMdBTMedium' ! important;"> sign up </a></li> 

    <li class="logout white"><a title="Login" href="/login?status=d&amp;login=setlogin" style="font-size: 14px; font-family: 'AmerTypeMdBTMedium' ! important;"> login</a></li> 
</ul> 
在上面我需要檢查裏具有類名稱「signup_login」以前李類

。基於此,我需要爲最後兩個李的課程設置類。

爲我用下面的jQuery,

$(document).ready(function() {  
    if(($('.signup_login').prev('.white'))){ 
     $('.signup_login').addClass('orange'); 
     $('.logout').addClass('white'); 
    } else { 
     $('.signup_login').addClass('white'); 
     $('.logout').addClass('orange'); 
    } 
)}; 

,但它不會工作。上述jQuery代碼有什麼問題?

回答

5

試試這個:

if($('.signup_login').prev('li').hasClass('white')) { 
... 
+0

謝謝。其工作 – 2011-12-27 11:33:39

+0

不客氣。 :) – techfoobar 2011-12-27 11:36:58

0

prev()不會返回它的類或不。它只是返回前一個元素。 所以你應該試試

$('.signup_login').prev().hasClass('white') 

有點代碼。

0

試試這個:

$(".signup_login") 
    .siblings() 
    .each(function(){ 
     if($(this).hasClass("white")){ 
      // has white class 
     } else { 
      // doesn't have white class 
     } 
    }); 

這將檢查所有li的兄弟姐妹,如果他們有適當的班級,做任何你想要他們。