2015-04-24 4 views
-1

Здесь я пытаюсь добавить класс alignright в blog-post div, если div имеет конкретный класс blog-post, но ниже код не работает, помогите мне разобраться в этом.Добавить класс в div, если div имеет конкретный класс

<div class="switches"> 
    <span class="blog off">Blog</span> 
</div> 
<div class="timeline"> 
    <script> 
    $(".switches span").click(function(){ 
     $(this).closest("span").toggleClass('off'); 
     if ($(this).hasClass("blog off")) { 
      $('.timeline').first().removeClass('timeline'). 
      children('div').hasClass('blog-post').addClass('alignright');    
     } 
    }); 
    </script> 
    <div class="single-post single-post blog-post"> 
     <div class="single-post single-post web-post"></div> 
    </div> 
</div> 
+0

ваш код выглядит перепутались. – Zee

+0

- это опечатка? ваш код не имеет скриптовых тегов, jquery ref и т. д. –

+0

Это не подходящее место для добавления кода jQuery. –

ответ

1

.hasClass() функция не делать то, что ваш код думает, что это делает. Он всегда возвращает boolean. Вы хотите .filter():

$('.timeline').first().removeClass('timeline').children('div').filter('.blog-post').addClass('alignright'); 
0
<div class="switches"> 
     <span class="blog off">Blog</span> 
    </div> 
    <div class="timeline"> 
     <div class="single-post single-post blog-post"></div> 
     <div class="single-post single-post web-post"></div>    
    </div> 



    <script> 
     $(".switches span").click(function(){ 
      $(this).toggleClass('off'); 

      if ($(this).hasClass("blog off")) { 
       var mydiv = $(this).parent().next(); 
       mydiv.removeClass('timeline'); 
       mydiv.find('div.blog-post').addClass('alignright'); 

      } 
     }); 
    </script> 
0

Проблема метод hasClass(), который возвращает логическое значение, поэтому вызов addClass после его провала

$(".switches span").click(function() { 
    //this is the span 
    $(this).toggleClass('off'); 
    if ($(this).hasClass("off")) { 
     $(this).next('div.blog-post').addClass('alignright'); 
    } 
}); 
Смежные вопросы