2016-06-21 77 views
3

我想将类添加到具有类'alignleft'的元素。我的代码:JQuery - 如果元素具有类,则添加类

$(document).ready(function() { 
    if($('.foto').children().hasClass('alignleft')){ 
     $(this).addClass('animated bounceInLeft'); 
    } 
}); 

它不起作用,我不知道为什么。但是,如果我使用$('.foto').children().addClass('animated bounceInLeft');它将类应用于类'alignleft'的所有子元素。所以问题可能在$(this)

回答

1

不能使用this,其指的窗口对象。相反,使用该类作为选择器的方法是children()方法。

$('.foto').children('.alignleft').addClass('animated bounceInLeft'); 

或者使用child selector(>)

$('.foto > .alignleft').addClass('animated bounceInLeft'); 
1

您可以定位使用类选择的元素,然后添加类到它们:

$('.foto .alignleft').addClass('animated bounceInLeft'); 
0

尝试

$(document).ready(function() { 
var elem = $('.foto .alignleft'); 
    if (elem) { 
    elem.addClass('animated bounceInLeft'); 
    } 
}); 

$(document).ready(function() { 
    $('.foto .alignleft').addClass('animated bounceInLeft'); 
}); 

$(document).ready(function() { 
 
var elem = $('.foto .alignleft'); 
 
    if (elem) { 
 
    elem.addClass('animated bounceInLeft'); 
 
    } 
 
});
.alignleft{color:red;} 
 
.alignright{color:green;} 
 

 
.animated{background:lightgrey;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="foto"> 
 
    <div class="alignleft"> 
 
    Div A 
 
    </div> 
 
    
 
    <div class="alignleft"> 
 
    Div B 
 
    </div> 
 
    
 
    <div class="alignright"> 
 
    Div C 
 
    </div> 
 
    <div class="alignright"> 
 
    Div D 
 
    </div> 
 
</div>

相关问题