如何使用jQuery隐藏div?


82

当我想隐藏HTML时<div>,我使用以下JavaScript代码:

var div = document.getElementById('myDiv');
div.style.visibility = "hidden";
div.style.display = "none";

jQuery中的代码等效于什么?

Answers:


154
$('#myDiv').hide();

要么

$('#myDiv').slideUp();

要么

$('#myDiv').fadeOut();

实际上这三个部分都是相同的display:none,只是三个不同的动画效果。正确答案是@ honk31 .css("visibility", "hidden"),这是有目的的!该visiblity:hidden不像display:none保持使用空间,同时display:none将像它永远不会有存在。
开发人员

1
@Developer虽然很有趣,而且很有用,但我没有看到任何迹象表明您的解决方案是理想的效果。相反,OP似乎发现它很好地回答了他们的问题。出于我的目的,继续占用空间实际上是非常不可取的。不要自大。
donutguy640

就像我们以前在RTFM之前所说的那样。在最初的帖子中,一个人问见到能见度=“隐藏”和显示=“无”有什么区别,他有没有问过如何制作隐藏动画?保持话题!
开发人员


27
$("#myDiv").hide();

将css显示设置为none。如果您还需要将可见性设置为隐藏,则可以通过

$("#myDiv").css("visibility", "hidden");

或将两者结合在一起

$("#myDiv").hide().css("visibility", "hidden");

或使用一个css()函数编写所有内容

$("#myDiv").css({
  display: "none",
  visibility: "hidden"
});

应该选择正确的答案,我不知道为什么人们投票赞成完全错误的答案!
开发人员

14

如果您希望元素保留其空间,则需要使用,

$('#myDiv').css('visibility','hidden')

如果您不希望元素保留其空间,则可以使用,

$('#myDiv').css('display','none')

或者简单地说,

$('#myDiv').hide();

7

$("myDiv").hide();$("myDiv").show();没有在Internet Explorer中的工作都顺利。

我解决这个问题的方法是获取myDivusing的html内容 .html()

然后,我将其写入新创建的DIV。然后,当我想显示DIV时,我将DIV附加到主体并将变量的内容附加Content到,HiddenField然后从新创建的div中读取该内容。

在我使用该.remove()方法摆脱暂时持有我的DIV html的DIV之后。

var Content = $('myDiv').html(); 
        $('myDiv').empty();
        var hiddenField = $("<input type='hidden' id='myDiv2'>");
        $('body').append(hiddenField);
        HiddenField.val(Content);

然后当我想再次显示内容时。

        var Content = $('myDiv');
        Content.html($('#myDiv2').val());
        $('#myDiv2').remove();

这比.hide().show()方法更可靠。



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.