添加 class 到 div 如果 div 有特定的 class
Add class to the div if div have specific class
我在这里尝试在 blog-post
div 中添加 class alignright
如果 div 具有特定的 class 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>
.hasClass()
函数并没有按照您的代码预期的那样进行操作。它总是 returns 一个布尔值。你想要 .filter()
:
$('.timeline').first().removeClass('timeline').children('div').filter('.blog-post').addClass('alignright');
<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>
问题是 hasClass() 方法,它会 return 一个布尔值,所以之后调用 addClass
会失败
$(".switches span").click(function () {
//this is the span
$(this).toggleClass('off');
if ($(this).hasClass("off")) {
$(this).next('div.blog-post').addClass('alignright');
}
});
我在这里尝试在 blog-post
div 中添加 class alignright
如果 div 具有特定的 class 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>
.hasClass()
函数并没有按照您的代码预期的那样进行操作。它总是 returns 一个布尔值。你想要 .filter()
:
$('.timeline').first().removeClass('timeline').children('div').filter('.blog-post').addClass('alignright');
<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>
问题是 hasClass() 方法,它会 return 一个布尔值,所以之后调用 addClass
会失败
$(".switches span").click(function () {
//this is the span
$(this).toggleClass('off');
if ($(this).hasClass("off")) {
$(this).next('div.blog-post').addClass('alignright');
}
});