我有类似的东西:
<div id="id1">
//some code 1
<div id = "id2">
//some code 2
</div>
</div>
现在,我使用以下命令隐藏所有块:
$("#id1").hide();
但是,当我尝试显示内部块时,使用以下命令:
$("#id2").show();
但这不起作用!
我应该怎么做才能解决这个问题?
我有类似的东西:
<div id="id1">
//some code 1
<div id = "id2">
//some code 2
</div>
</div>
现在,我使用以下命令隐藏所有块:
$("#id1").hide();
但是,当我尝试显示内部块时,使用以下命令:
$("#id2").show();
但这不起作用!
我应该怎么做才能解决这个问题?
当父元素被隐藏时,它的所有子元素也被隐藏。
如果您只想显示带有 ' id2
' id 的元素,您可以这样做:
$('#id1').children(':not(#id2)').hide(); //Hiding all children except '#id2'
$('#id1').show();
如果id1
是隐藏的,不管是否id2
可见。它不会显示,因为它的父级是隐藏的。这适用于所有后代元素。
不,这是不可能的display:none
(这就是这样.hide()
做的)。display:none
隐藏元素,因此不会显示任何子元素。
display
如果您能够从 using 切换到,这可能与您想要的一致visibility
。
#id1 {visibility: hidden;}
#id2 {visibility: visible;}
查看工作小提琴:http: //jsfiddle.net/vLYnk/2/
使用 javascript,您可以使用:
$("#id1").css('visibility', 'hidden');
$("#id2").css('visibility', 'visible');
创建一个元素并复制它然后显示它。
var element = jQuery('#id2').clone();
element.appendTo('some element');
如果要显示它,则需要将内部 div 移出。类似的东西
$("#id2").parents(":visible").appendTo($("#id2"))