在这里,我尝试在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>
答案 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');
}
});