2012-07-27 67 views
0

我有动态生成的,看起来像下面jQuery的隐藏类节目个人格

<div class="Foo"> 
    <div class ="Bar" id ="Something{X}"> // Where {X} is a counter i.e "Something1" , "Something2" 
    <p>some stuff</p> 
    <form> 
    <input /> 
    </form> 
</div> 

现在,经过我动态生成类Foo我所有的div的我做了以下

$('.Foo').hide(); 
的div列表

这显然隐藏了所有div,就像我期望的那样。但是,我希望能够点击div上方的链接,以便您可以取消隐藏单个div。

现在通常对于一个班级我知道我只想去$('。Foo')。他们都会表现出来。

但是,执行以下操作不起作用。

$("#Something1").show(); 

这是jQuery允许隐藏所有内容然后显示单个项目的东西吗?或者我正在讨论这个错误?

+0

你的HTML似乎缺少一个紧密的Div标签(对于其中一个,很难说)。 – Chris 2012-07-27 15:56:51

回答

2

你的问题是你隐藏了隐藏的父容器。

试着隐藏你的 “酒吧”,而不是

$('.bar').hide();

然后$("something1").show()

1

你是隐藏与类Foo父DIV;因此,您需要显示该div。

$("#Something1").parent().show(); 
0
<p class="showlink">Link to show</p> 
<div class="Foo"> 
    <div class ="Bar" id ="Something{X}"> // Where {X} is a counter i.e "Something1" , "Something2" 
    <p>some stuff</p> 
    <form> 
    <input /> 
    </form> 
</div> 

JS

$(".showlink").on('click', function() { 
    $(this).next('.Foo').show(); 
}); 
1

相反的:

$(".foo").hide(); 

它应该是:

$(".bar").hide(); 

,然后重新打开一个通过:

$("#Something1").show(); 

你隐藏父容器,然后试图打开它的一个孩子,所以你看不到它。