.show() displays matched elements (since jQuery 1.0). With no arguments it is instant and restores the display value saved by .hide() — so inline, block, flex, and others come back correctly. With a duration it becomes an animation.
Remember
$(".target").show() // instant
$("p").show("slow") // 600ms animation
$("#box").show(200, function () {}) // duration + complete
// Not the same as always forcing block:
// .css("display", "block") vs restore saved display
// Pair with the opposite:
$(".panel").hide()
$(".panel").show()
Select hidden elements, call show, optionally animate and run a callback.
Select the element(s) you want to reveal.
Call .show() for an instant reveal, or pass a duration / options.
Optionally add a complete callback (runs once per matched element).
Chain further methods on the same collection if needed.
Piece
Required?
Role
jQuery collection
Yes
Elements to display
duration
No
ms, "slow", or "fast"
easing
No
swing / linear (1.4.3+)
complete
No
Runs after each element finishes
options
No
Map of effect options
Pseudocode
Pseudocode
for each element in matched set:
saved = display saved by .hide() (if any)
if no duration:
set display to saved (or default for that tag)
else:
animate width, height, opacity
then set display to saved
then call complete (this = element)
return matched set
// Rough idea without restore:
// .css("display", "block") always forces block
Reference
Cheat Sheet
Keep these facts handy while revealing elements.
Topic
Detail
Syntax
.show() · .show(duration[, complete]) · options
Since
jQuery 1.0 (easing arg 1.4.3)
"fast" / "slow"
200ms / 600ms
Default duration
400ms when animating
Display
Restores saved value — not always block
!important
Cannot override display: none !important
jQuery.fx.off
true → all effects instant
vs .toggle()
Always show vs flip hide/show
Try it
Live Preview
Hide a demo panel, then reveal it with instant or animated .show().
Hello from .show()
Browser demo of .show() — same idea as the examples below.
Result
Ready — hide first, then show.
Code
jQuery Examples
Short, copy-ready snippets. Open DevTools Console, or use Try It Yourself for a live editor.
Example 1 — Instant .show()
Reveal a hidden element immediately with no animation.
Instant vs animated: no args → instant; duration → width/height/opacity.
Pair: use with .hide() and .toggle().
Limit: cannot beat display: none !important.
One line:$(sel).show() reveals elements and restores their saved display — optionally with animation.
Frequently Asked Questions
.show() displays matched elements. With no arguments it is instant and restores the display value saved by .hide() (or a sensible default). With a duration or options it animates width, height, and opacity. Returns the jQuery collection. Available since jQuery 1.0.
.css('display', 'block') always forces block. .show() restores the saved display — so an inline span becomes inline again. Prefer .show() after .hide() for correct layout.
.hide() sets display: none and saves the old display. .show() reverses that. Pair them for menus, modals, and panels.
Yes. Pass milliseconds, 'slow' (600ms), or 'fast' (200ms). You can also pass easing (1.4.3+), an options object, and a complete callback (once per matched element).
No. Prefer class toggles with .addClass() / .removeClass() / .toggleClass(). Forcing style with !important overwrites the style attribute and is usually a last resort.
Set jQuery.fx.off = true. All effects, including .show(), then run with zero duration. Useful for tests or reduced motion.