我有一个容器用于我的所有元素,我隐藏了所有的孩子:
$("#svgContainer").children().hide();
我有两个元素是'SVGContainer'的孙子:
#canvasParent
& #canvasChild
。
我试过这样做:
$("#svgContainer").children().hide();
$("#canvasParent").show();
$("#canvasChild").show();
这似乎不起作用,可能是因为display:none;
被赋予父母而不是孩子。
除了id为#canvasParent
&的元素外,我如何隐藏每个SVGContainers子元素? #canvasChild
。
这是我所拥有的布局的小提琴:http://jsfiddle.net/o9zowx3b/1/
注意它仍隐藏所有元素,我认为这是因为他们是孙子孙女而不是svgContainer的孩子
答案 0 :(得分:2)
您想要做的是隐藏特定元素的所有兄弟姐妹。 jQuery使用 .siblings方法相对简单:
$("#svgContainer").children().hide();
这将隐藏同一级别中同一父元素中的所有元素。
答案 1 :(得分:2)
这应该按要求工作。
$('#svgContainer').children().not('#canvasParent').not('#canvasChild').hide();
祝你好运。
答案 2 :(得分:1)
这将选择除2个孩子以外的所有孩子。
$("#svgContainer").children().not("#canvasParent,#canvasChild").hide();
答案 3 :(得分:1)
您也可以使用单选择器执行此操作:
$("#svgContainer > :not(#canvasParent,#canvasChild)").hide();

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="svgContainer">
<div id="canvasParent">canvasParent</div>
<div>should be hidden</div>
<div id="canvasChild">canvasChild</div>
</div>
&#13;