Как я могу получить предыдущее имя класса li? - PullRequest
0 голосов
/ 27 декабря 2011

У меня есть структура меню, как показано ниже,

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

в вышеупомянутом мне нужно проверить li, у которого есть имя класса "signup_login" предыдущий класс li. основываясь на том, что мне нужно установить класс для двух последних li.

для этого я использовал ниже 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?.

Ответы [ 3 ]

5 голосов
/ 27 декабря 2011

Попробуйте это:

if($('.signup_login').prev('li').hasClass('white')) {
...
0 голосов
/ 27 декабря 2011

Попробуйте это:

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

Это проверит всех братьев и сестер li и, если они имеют соответствующий класс, сделает с ними все, что вы захотите.

0 голосов
/ 27 декабря 2011

prev () не возвращает, имеет класс или нет.это просто вернуть предыдущий элемент.поэтому вы должны попробовать

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

своего рода код.

...