Javascript JQuery隐藏除当前元素之外的所有元素

Javascript JQuery隐藏除当前元素之外的所有元素,javascript,jquery,Javascript,Jquery,我有4个方块,每当我按下其中一个方块时,里面就会出现一个复选框。如果我点击另一个块,当前复选框将消失,另一个复选框将出现,这是好的。问题是,如果我单击一个块并出现复选框,当我按下该复选框时,该块将消失,而它不应该消失 我有以下html代码: <div class="item">1 <input class="hidden" type="checkbox"></div> <div class="item">2 <input class="hid

我有4个方块,每当我按下其中一个方块时,里面就会出现一个复选框。如果我点击另一个块,当前复选框将消失,另一个复选框将出现,这是好的。问题是,如果我单击一个块并出现复选框,当我按下该复选框时,该块将消失,而它不应该消失

我有以下html代码:

<div class="item">1 <input class="hidden" type="checkbox"></div>
<div class="item">2 <input class="hidden" type="checkbox"></div>
<div class="item">3 <input class="hidden" type="checkbox"></div>
<div class="item">4 <input class="hidden" type="checkbox"></div>
以及javascript代码:

$(".item").click(function(){     
    $(".item").find('input').hide();                    
    $(this).find('input').show('fast');
});
要隐藏除当前复选框(我单击的块)之外可见的所有复选框,我该怎么做?

试试看

$(".item").click(function(){     
    $(".item").find('input').addClass('hidden');                    
    $(this).find('input').removeClass('hidden');
});
试一试

像这样使用
.not()
过滤器

$(".item").click(function(){     
    $(".item").not(this).find('input').hide();                    
});
编辑:

<>你可能想考虑一个用户是否想改变主意,重新启用所有选项。您可以这样做:

$(".item").click(function(){     
    var items = $(".item").not(this).find('input');
    if($('input',this).is(':checked')) items.hide();
    else items.show();                
});

像这样使用
.not()
过滤器

$(".item").click(function(){     
    $(".item").not(this).find('input').hide();                    
});
编辑:

<>你可能想考虑一个用户是否想改变主意,重新启用所有选项。您可以这样做:

$(".item").click(function(){     
    var items = $(".item").not(this).find('input');
    if($('input',this).is(':checked')) items.hide();
    else items.show();                
});

$(this).sibbins().find('input').hide()作为另一种选择。这非常好用,谢谢,你的速度非常快。几秒钟前我已经对一个问题进行了评分,我必须等待7分钟才能再次评分。顺便问一下,你认为这个问题会帮助其他人吗?是的,有很多不同的选择器可以工作。不过,我倾向于尽量接近OP发布的内容,只是因为人们为了不浮肿而倾向于简化这些问题questions@CrisanRalucaTeodora:没问题。所有堆栈溢出问题都有助于其他人。我对几年前发布的问题都有答案,我一直觉得这些问题很“简单”,但仍然时不时地得到选票。问题/答案是否有用取决于您是否知道答案。
$(this).sides().find('input').hide()作为另一种选择。这非常好用,谢谢,你的速度非常快。几秒钟前我已经对一个问题进行了评分,我必须等待7分钟才能再次评分。顺便问一下,你认为这个问题会帮助其他人吗?是的,有很多不同的选择器可以工作。不过,我倾向于尽量接近OP发布的内容,只是因为人们为了不浮肿而倾向于简化这些问题questions@CrisanRalucaTeodora:没问题。所有堆栈溢出问题都有助于其他人。我对几年前发布的问题都有答案,我一直觉得这些问题很“简单”,但仍然时不时地得到选票。一个问题/答案是否有用取决于你是否知道答案。正如我所写的,问题在于:1)我单击块,出现一个复选框2)当我单击复选框时,所有其他复选框都应该隐藏,只有当前复选框应该保留。3) 问题是所有其他复选框都隐藏了,包括当前的复选框再次出现。所以我有一个剪贴女巫,它不应该是。不管怎样,我已经得到了一个有用的Answare女巫,我测试过了,它工作得非常完美。谢谢,正如我写的,问题在于:1)我点击了块,出现了一个复选框2)当我点击复选框时,所有其他复选框都应该隐藏,只有当前复选框应该保留。3) 问题是所有其他复选框都隐藏了,包括当前的复选框再次出现。所以我有一个剪贴女巫,它不应该是。不管怎样,我已经得到了一个有用的Answare女巫,我测试过了,它工作得非常完美。谢谢