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?