2012-01-13 65 views
0

我有一个代码是这样的:使用jquery显示多个隐藏divs?

<div id="specialDiv"> 
    <div id="div1"> 
    <div id="div2"> 
    </div> 
    </div> 
<div> 

的DIV1和DIV2为了隐藏而现在,以显示他们我做这样的事情:

$('#div1').show(); 
$('#div2').show(); 

它的工作原理,但有没有一个优雅的方式做到这一点以外

$('#speicalDiv div').show(); 

谢谢。

+3

如何是你的第一个解决方案不优雅?如果我是你,我就不会隐藏div2开始。你的第三个代码片段在语法上也是不正确的。 – BiAiB 2012-01-13 16:09:16

+0

你对雅致的定义是什么?最少的代码?大多数可读?执行效率? – 2012-01-13 16:09:44

+1

或者你想要的东西是这样的:$('#div1,#div2')。show() – BiAiB 2012-01-13 16:09:53

回答

0

$('#specialDiv div').show();将显示全部div里面#specialDiv

但是,您不必隐藏div的内部 - 隐藏父项就足够了。

如果您只是想直接在#specialDiv(在您的案例中:)显示div,您可以选择使用#specialDiv > div

0

如果你想添加一个类的可隐藏的div,你可以参考在显示()/隐藏()语句的类。

否则,您的方法看起来尽可能优雅。

0

将div放入类中。即

$('.toshow').show(); 

然后,它们可以在页面上的任何地方,并且如果需要可以是除div之外的其它东西。

0

到了你已经提出类似,你可以这样做:

$('#specialDiv div').show(); 

但更灵活的方法将是一个新的类名称添加到您想要显示的div:

<div id="specialDiv"> 
    <div id="div1" class"hidden"> 
    <div id="div2" class="hidden"> 
    </div> 
    </div> 
<div> 

然后告诉他们,像这样:

$('#specialDiv .hidden').show();