2010-02-05 143 views
1

我想显示并隐藏正好位于body标签下的div,而不是其他div标签下的div。用jquery显示/隐藏一级div

例如在下面的代码中,我想隐藏jquery div1和div2,但不是div1A,div1B,div2A和div2B。我知道如果我隐藏div1,则div1A和div1B将被隐藏。

<body> 
    <div id="div1"> 
     <div id="div1A"></div> 
     <div id="div1B"></div> 
    </div> 
    <div id="div2"> 
     <div id="div2A"></div> 
     <div id="div2B"></div>  
    </div> 
</body> 

我需要,因为如果我做$(“div”)。hide();然后$(“div1”)。show(); div1A和div1B仍然隐藏,因为$(“div”)。hide();隐藏它们,但$(“div1”)。show();不会影响他们。

我试过用$(“body div”)。hide();但它与$(“div”)的效果相同。hide();

我需要一个只隐藏div1和div2的jquery调用。有没有办法做到这一点,而不必设置类名?

谢谢。

回答

11

这是为眼前的孩子选择一份工作:>

$('body > div').hide(); 
+0

对于任何人发现这稍后,这里是这样的问题的最佳选择器资源:http://api.jquery.com/category/selectors/ – 2010-02-05 12:40:11

2

尝试......

$("body > div").hide(); 

的“>”强制选择停在只有直接DIV孩子body标签并且不会深入到DOM中以选择所有div元素。

2

$('body > div').hide();是去为其他人已指出,但我只是想指出,使用children()方法也将工作,为选择一个元素的直接孩子的方式:

$('body').children('div');