jQuery隐藏其他<div>,而不是<div> </div> </div>

时间:2011-04-01 18:38:30

标签: javascript jquery

我正在生成几个id =“RG”的div:

<div id="rg"></div>
<div id="rg"></div>
<div id="rg"></div>

如果我要点击第一个div,我怎么能隐藏每个div但是点击了div。

<div id="rg"></div> <-- Clicked (Keep)
<div id="rg"></div> <-- Hide
<div id="rg"></div> <-- Hide

7 个答案:

答案 0 :(得分:9)

首先,您可以/应该只使用一次ID,即每个ID属性的值必须是唯一的。

其次,它看起来像这样

$('div').click(function() {
   $(this).siblings().hide();
}):

答案 1 :(得分:4)

你应该多次使用相同的ID,而是使用类。

<div class="rg"></div>

然后只需:

$(".rg").click(function(){
    $(".rg").not(this).hide();
});

示例:http://jsfiddle.net/nTs8H/

答案 2 :(得分:2)

首先,你不应该有多个具有相同id的元素。请改用<div class="rg"></div>

如果将它们更改为类,则可以使用以下代码:

$(".rg").click(function(){
  $(this).siblings(".rg").hide();
});

答案 3 :(得分:1)

$('#rg').click(function(e){
    $(this).siblings().hide();
});

答案 4 :(得分:0)

您不能使用ID两次,因此请将它们切换为类并使用它:

        $(document).ready(function()
            {
                $('.rg').click(function() {
                    $('.rg').hide();
                    $(this).show();
                });
            });

答案 5 :(得分:0)

首先,如评论中所述,您应该使用class而不是id,因为id应该是唯一的。 我无法提供jQuery解决方案,但我可以给你一个通用的东西。

因此,当您单击div时,此div应作为参数传递给侦听器。 (我认为) 要隐藏所有其他人,你必须找到class = rg

的所有div

这应该像jQuery(“。rg”)。hide()

然后,在隐藏所有div之后,您应该显示用户单击的div。

就是这样。

答案 6 :(得分:0)

<div id="rg1" class="toggle"></div>
<div id="rg2" class="toggle"></div>
<div id="rg3" class="toggle"></div>

然后为每个div添加onclick事件(#rg1 - 在示例中)

$('.toggle').css('display','none');$('#rg1').css('display','block');

此解决方案适用于其他div(或其他标签)不是兄弟姐妹的情况