2009-09-21 11 views

Odpowiedz

4

Poniższa wyświetli DIV nazwie myDiv jeśli jest ukryty. Zauważ, że jeśli chcesz robić inne rzeczy, możesz także użyć each() zamiast pokazywać i robić inne operacje na $ (this) wewnątrz każdego.

$('div#myDiv:hidden').show(); 
+0

to trochę zbędne, prawda? – nickf

+0

@nickf: Po prostu staram się zachować spójność z podanym przykładem. – tvanfosson

1

To będzie test aby sprawdzić, czy wybrany żadnych ukrytych elementów z identyfikatorem "myDiv":

if ($("#mydiv:hidden").length > 0) 
{ 
    // 
} 

Edycja: selektor uproszczone. Musiał to sprawdzić:/

39

Jeśli próbujesz tylko pokazać div, która jest ukryta, to w rzeczywistości nie trzeba robić żadnych kontroli na wszystkich:

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

Niezależnie od jego stan wcześniej, teraz będzie widoczny.

Jednakże, jeśli chcesz wykonać inne działania w zależności od tego, czy materiał jest widoczny, czy nie, to musisz sprawdzić:

if ($('#myDiv').is(":hidden")) 
// or 
if ($('#myDiv:hidden').length) 
// or 
if ($('#myDiv:not(:visible)')) { // you get the idea... 
    //perform your actions 
} 
+0

Nie mogę zagwarantować świętości tego testu, ale właśnie rzuciłem te trzy funkcje do jsperf, aby zobaczyć, co się pojawiło. Wygląda na to, że .is: hidden is the best! http://jsperf.com/is-the-div-hidden –

26

Wszystkie inne odpowiedzi są w porządku, ale jest to po prostu przetłumaczyć Twój pseudokod do rzeczywistego kodu javascript:

if (!$('div').is(':visible')) { 
    $('div').show(); 
} 
0

Jeśli szukasz tylko do ukrycia i pokazano element równie dobrze można po prostu użyć jQuery .toggle() metodę, która zrobi to za ciebie. Podobnie, metody .slideToggle() i .fadeToggle() będą ukrywać i wyświetlać element (y) za pomocą animacji poślizgu lub zanikania.

Powiązane problemy