Як приховати div за допомогою jQuery?


83

Коли я хочу приховати HTML <div>, я використовую такий код JavaScript:

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

Що є еквівалентом цього коду в jQuery?

Відповіді:


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

або

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

або

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

Це насправді всі три однакові display:noneлише з трьома різними анімаційними ефектами. Правильна відповідь - @ honk31, .css("visibility", "hidden")і мета є! visiblity:hiddenВідмінність display:noneпродовжує використовувати простір, display:noneбуде вести себе так, як він ніколи не існуючий там.
Розробник

1
@Developer Хоча цікавий і потенційно корисний момент, я не бачу абсолютно нічого, що вказує на те, що ваше рішення мало бажаний ефект. Навпаки, здається, ОП знайшла, що досить добре відповіла на їх запитання. Для моїх цілей продовжувати займати простір насправді було б дуже небажано. Не будь зарозумілим.
donutguy640

Як ми звикли говорити до RTFM. У початковому дописі людина запитує, в чому різниця між visibility = "hidden" і display = "none", чи запитував він коли-небудь, як зробити приховування анімації? Залишайтеся на темі!
Розробник


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 так добре.

Я обійшов це шляхом отримання вмісту html myDivвикористання.html() .

Потім я написав його у новоствореному DIV. Потім я додав DIV до основного тексту та зміст змінної ContentдоHiddenField тоді прочитаного вмісту із новоствореного div, коли я хотів показати DIV.

Після того, як я використав .remove()метод, щоб позбутися DIV, який тимчасово містив мою DIVs html.

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()методи.



Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.