在Jquery中不能执行show()方法

can't perform show() method in Jquery

本文关键字:方法 show 执行 Jquery 不能      更新时间:2023-09-26

我有一些像:

<div id="id1">
    //some code 1
    <div id = "id2">
    //some code 2
    </div>
</div>
现在,我用命令隐藏all块:
$("#id1").hide();

但是,当我试图显示内部块时,使用命令:

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

但是这行不通!

我该怎么做来解决这个问题?

当父元素为hidden时,其所有子元素也为hidden

如果您只想显示id为' id2 '的元素,您可以这样做:

$('#id1').children(':not(#id2)').hide();  //Hiding all children except '#id2'  
$('#id1').show();

如果id1是隐藏的,那么id2是否可见并不重要。它不会被显示,因为它的父元素是隐藏的。

不,这是不可能使用display:none (这是.hide()所做的)。display:none隐藏元素,因此不会显示任何子元素。

如果您能够从使用display切换到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"))