如果div具有特定的类,则将类添加到div

时间:2015-04-24 12:09:52

标签: javascript jquery addclass

在这里,我尝试在alignright div中添加类blog-post,如果div具有特定的类blog-post但是下面的代码不起作用,请帮我解决这个问题。

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

3 个答案:

答案 0 :(得分:1)

.hasClass()函数不会执行代码认为的功能。它总是只返回一个布尔值。你想要.filter()

 $('.timeline').first().removeClass('timeline').children('div').filter('.blog-post').addClass('alignright');

答案 1 :(得分: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>

答案 2 :(得分: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');
    }
});