jQuery.support (alias $.support) is an object of internal browser feature/bug test results that jQuery uses to pick cross-browser code paths (since jQuery 1.3). It is not a public feature-detection API for your apps.
Remember
typeof jQuery.support // "object"
Object.keys(jQuery.support) // internal flag names (may change)
// ❌ Do not rely on this in app code:
if ($.support.someFlag) { … }
// ✅ Detect what you need instead:
CSS.supports("display", "flex")
typeof fetch === "function"
For learning and debugging only — not for production feature gates.
Load jQuery in the browser ($.support needs a DOM).
Inspect with Object.keys($.support) if you are reading legacy code.
Treat every property as unstable — it may be a boolean or a lazy function (1.11+).
For your own features, use native checks or Modernizr instead of $.support.
Piece
Required?
Role
Arguments
—
None — it is a property, not a method
Type
—
Object of internal flags
Audience
—
jQuery internals (not your app)
Pseudocode
Pseudocode
jQuery.support = {
// some keys → boolean result of a browser test
// some keys → function () { run test; return boolean } // lazy (1.11+)
}
// jQuery reads these when choosing code paths
// Your app should NOT branch on them
// Preferred:
if CSS.supports("display", "flex"): use flex layout
if typeof fetch === "function": use fetch
else: use fallback
Reference
Cheat Sheet
Keep these facts handy when reading old plugins that mention $.support.
Topic
Detail
Access
jQuery.support / $.support
Added
jQuery 1.3
Deprecated
jQuery 1.9 (external use)
Lazy tests
Some keys are functions (1.11 / 1.12+)
JSON
Not reliably serializable
Still in 3.x?
Yes, trimmed — internal only
Use instead
Modernizr / native feature tests
Try it
Live Preview
Inspect the live $.support object in this browser, or run a native feature check instead.
Browser demo of $.support inspection — for learning only, not app feature gates.
Result
Object.keys($.support)
→ (run to inspect this browser)
Code
jQuery Examples
Short, copy-ready snippets. Open DevTools Console, or use Try It Yourself for a live editor.
Example 1 — List Support Property Names
See which internal keys exist in the current jQuery build.
APIs you use. Test fetch, CSS features, storage — not jQuery internals.
CSS.supports. Stable public API for CSS capability questions.
Try/catch storage. Some environments block localStorage; catch safely.
Stable contract. These checks belong in your app; $.support does not.
Edge Cases & Pitfalls
Check these before trusting anything you see on $.support.
deprecated
Not a public API
Flags may be removed without a major version bump. Official docs: use Modernizr (or native tests) for your project.
lazy
Some values are functions
Since 1.11/1.12, lazy tests return a boolean only when called. Do not assume every property is a boolean.
json
Not JSON-serializable
JSON.stringify($.support) omits functions or is incomplete. Snapshot keys, not the whole object.
vs browser
Different from jQuery.browser
$.browser sniffed the user agent and was removed in 1.9. $.support tests features — but is still deprecated for apps.
Compatibility
Browser Support
jQuery.support needs a browser DOM and jQuery loaded. It has existed since jQuery 1.3 and remains (trimmed) in jQuery 3.x for internal use — deprecated for application code since 1.9.
✓ Deprecated 1.9 · Internal only
jQuery.support
Reachable in browsers with jQuery 1.3+. Still present in jQuery 3.x for jQuery itself — not a stable public feature-detection API for your apps.
InternalNot for app code
Google ChromeAll versions · Desktop & Mobile
Full support
Mozilla FirefoxAll versions · Desktop & Mobile
Full support
Apple SafariAll versions · macOS & iOS
Full support
Microsoft EdgeAll versions · Chromium & Legacy
Full support
Internet ExplorerIE 6+ · Legacy environments
Full support
OperaAll modern versions
Full support
$.supportDeprecated
Bottom line: Inspect for learning; detect features with native APIs or Modernizr in real projects.
Analysis
Performance Notes
Approach
Cost
Best for
Eager $.support tests (old)
Startup cost
Historical jQuery boot
Lazy function properties (1.11+)
Pay on first use
Faster page start for jQuery
Native / Modernizr checks
Targeted
Features your UI actually needs
jQuery made tests lazy so unused checks do not slow every page. Your app should only test capabilities it will use — not read the whole support object.
Status: deprecated for apps since 1.9 — still used internally.
Lazy: some properties are functions (1.11+), not booleans.
Today: Modernizr or native CSS.supports / typeof checks.
One line:jQuery.support is jQuery’s private feature cache — inspect it to learn, never gate your app on its flags.
Frequently Asked Questions
jQuery.support is an object on the global jQuery namespace that caches results of internal browser capability tests. jQuery uses these flags to pick cross-browser code paths for DOM, CSS, and events. It was added in jQuery 1.3.
Yes. jQuery.support was deprecated in jQuery 1.9. The official docs state it is intended for jQuery's internal use only. Application code should not depend on its properties — they may be removed without notice to improve startup performance.
No — jQuery explicitly recommends against it. Use a dedicated library such as Modernizr, or native checks like CSS.supports(), 'fetch' in window, or element.canPlayType(). Those APIs are stable public contracts; jQuery.support properties are not.
Since jQuery 1.11 or 1.12, some support properties are lazy functions that run a test when called, not plain booleans. That deferred testing speeds page load. JSON.stringify cannot serialize functions, so logging the whole object to JSON fails or omits entries.
Yes — a trimmed set of internal flags remains in jQuery 3.7.x for jQuery's own modules. The object is still reachable as jQuery.support or $.support, but it is not a supported public API for developers.
Both were early jQuery browser-detection helpers. jQuery.browser (from navigator.userAgent) was removed in 1.9. jQuery.support tests features and bugs instead of parsing user-agent strings, but it was also deprecated in 1.9 for external use.