2011-12-27 139 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的兄弟姐妹,如果他们有适当的班级,做任何你想要他们。