If you're testing whether an element's display is either 'none' or
'block|inline|static|etc.' (i.e. not 'none') you can also do this:

$('#subnav-1').is(':visible')

or alternately

$('#subnav-1').is(':hidden')

Either of these returns a boolean.

On Jun 17, 11:20 pm, Jake Barnes <lawrence.krub...@gmail.com> wrote:
> So can I do this?
>
> if ($('#subnav-1').css('display') == "block") $('#subnav-1').css
> ('background-color', '#f00');
>
> That is, if this element has display:block then turn the background
> red?
>
> Just a hypothetical example, of course.
>
> On Jun 17, 10:55 pm, Ricardo <ricardob...@gmail.com> wrote:
>
>
>
> > $('#subnav-1').toggle();
>
> >http://docs.jquery.com/Effects/toggle
>
> > You can also access the display property with $('#subnav-1').css
> > ('display');
>
> > On Jun 17, 10:02 pm, Jake Barnes <lawrence.krub...@gmail.com> wrote:
>
> > > This code works, but it seems inelegant:
>
> > > if ($("#subnav-1")[0].style.display == "block") $("#subnav-1")
> > > [0].style.display = "none";
>
> > > This seems to violate The One True jQuery Way:
>
> > > [0]
>
> > > I assume I'm not suppose to do that.
>
> > > The each() method is more elegant, but it is more verbose:
>
> > > $("#subnav-1").each(function() {
> > >     if (this.style.display == "block") this.style.display = "none";
>
> > > }
>
> > > Curious if there is another, shorter way to do this?

Reply via email to