Javascript 使用jQuery删除父Div中的Div类

Javascript 使用jQuery删除父Div中的Div类,javascript,jquery,Javascript,Jquery,我在图像上有一个div。我想使用jqueryclick事件删除(或更改div类)映像单击时的div Div结构 <div class="post"> <img class="thumb" src="MyImg.jpg"> <div class="show-div"></div> </div> 我已经使RemoveDiv类在css样式表中不显示任何内容。但这似乎不起作用。我也试过了 $(this).parent().find('.

我在图像上有一个div。我想使用jqueryclick事件删除(或更改div类)映像单击时的div

Div结构

<div class="post">

<img class="thumb" src="MyImg.jpg">

<div class="show-div"></div>

</div>
我已经使RemoveDiv类在css样式表中不显示任何内容。但这似乎不起作用。我也试过了

$(this).parent().find('.show-div').toggleClass('remove-div');
请注意,这是一个PHP while循环,在这个页面上将有多个div

如果有人能给我指出正确的方法,这将是最合适的。

试试这个:

$(document).ready(function(){
$(".thumb").click( function(){
    $(this).parent().find('div.show-div').removeClass('show-div').addClass('remove-div'); 
   });
});
试试这个:

$(document).ready(function(){
$(".thumb").click( function(){
    $(this).parent().find('div.show-div').removeClass('show-div').addClass('remove-div'); 
   });
});
给出的代码是有效的

但是,您没有删除
.show div
,因此如果这是
display:block
,并且您的CSS规则是按此顺序的,那么这就是您的问题所在

.remove-div{
    display:none;
}
.show-div{
    display:block;
}
在这种情况下,切换CSS样式

.show-div{
    display:block;
}
.remove-div{
    display:none;
}
切换两个类

$(this).parent().find('.show-div').toggleClass('remove-div show-div');
但问题是,您将无法再次找到该div,因此需要更改选择器:

$(this).parent().find('.show-div, .remove-div').toggleClass('remove-div show-div');

给定的代码有效

但是,您没有删除
.show div
,因此如果这是
display:block
,并且您的CSS规则是按此顺序的,那么这就是您的问题所在

.remove-div{
    display:none;
}
.show-div{
    display:block;
}
在这种情况下,切换CSS样式

.show-div{
    display:block;
}
.remove-div{
    display:none;
}
切换两个类

$(this).parent().find('.show-div').toggleClass('remove-div show-div');
但问题是,您将无法再次找到该div,因此需要更改选择器:

$(this).parent().find('.show-div, .remove-div').toggleClass('remove-div show-div');

.show div不是.thumb的父代,而是兄弟姐妹。你试过了吗

$(this).siblings('.show-div').toggleClass('remove-div');

请注意,如果有多个.show div同级,这将返回一个数组。

.show div不是.thumb的父级,而是同级。你试过了吗

$(this).siblings('.show-div').toggleClass('remove-div');
$(this).siblings().toggle("slow");
请注意,如果有多个.show div同级,这将返回一个数组

$(this).siblings().toggle("slow");
试试这个


尝试此操作

第二次尝试看起来正确,这取决于您的CSS。第二次尝试看起来正确,这取决于您的CSS。@zack,但您可以将其切换回…?您的答案是可以的,但它不允许将元素切换回。解释这个问题很有用。@NigelAngel我不想切换回。然后只需使用
.remove()
而不是添加类。@zack,但你能切换回吗…?你的答案是可以的,但它不允许元素切换回。解释这个问题很有用。@NigelAngel我不想切换回去。然后只使用
.remove()
而不是添加类。