Latest development in branch 4
4.0.0-rc.2
Released 18 Jan 2026
(3 months ago)
SoftwarejQuery
Branch4
Security supportYes
Initial release4.0.0
18 Jan 2026
(3 months ago)
Latest release4.0.0-rc.2
18 Jan 2026
(3 months ago)
Source codehttps://github.com/jquery/jquery/tree/4.0.0-rc.2
Documentationhttps://api.jquery.com
jQuery 4 ReleasesView full list

jQuery 4 Release Notes

jQuery 4.0.0, released in late 2025, represents a major overhaul of the popular JavaScript library, dropping support for legacy browsers and modernizing the codebase for contemporary web development. This version aligns with modern ES modules, removes deprecated features accumulated over years, and focuses on performance and security. It requires modern browsers like Chrome 100+, Firefox 90+, Safari 14+, and Edge 100+, while ending support for Internet Explorer entirely.

jQuery 4.0 maintains core API compatibility for most use cases but introduces breaking changes to shed outdated code paths. The slim build is about 8kB smaller gzipped, excluding AJAX and effects modules. This release prepares jQuery for a post-IE world, with contributions from the core team emphasizing tree-shaking and bundler compatibility.

Browser Support Changes

jQuery 4.0 drops support for IE 10 and older, with plans to remove IE 11 in 5.0. It no longer includes polyfills for older JavaScript features, relying on native implementations in supported browsers.

This shift enables cleaner code and better performance, as the team removes conditional logic for legacy rendering engines. Developers targeting older browsers should stick to 3.x.

Module System and Bundler Support

The source code is now built with ES modules, allowing direct imports without AMD loaders like RequireJS. The package.json exports field is fixed for better bundler integration in tools like Webpack and Rollup.

jQuery supports tree-shaking, so unused methods like $.ajax can be excluded from bundles. This reduces final sizes in modern setups.

Breaking Changes

Removed Feature Replacement / Recommendation
Positional pseudo-selectors: :eq, :lt, :gt, :first, :last, :even, :odd, :parent, :root, :lang, :animated Use .eq(), .slice(), :nth-child(), or new .even()/.odd() methods
Legacy event methods: .load(), .unload(), .error() Use native addEventListener
$.holdReady() Use module loading patterns or defer script execution
$.fn.andSelf() Use .addBack()
$.fn.load() (AJAX method) Use $.get() or fetch()
$.fn.size() Use .length property
$.fn.bind(), $.fn.delegate(), $.fn.live() Use .on()
$.fn.toggle() (event binding) Use explicit event handlers
$.fn.focusin, $.fn.focusout, $.fn.mouseenter, $.fn.mouseleave (as methods) Use .on("focusin"), .on("focusout"), etc.
Functional forms: .attr(name, function), .removeAttr(name, function), .removeProp(name, function), .addClass/removeClass/toggleClass(className, function) Use .each() with direct manipulation
JSONP support Use CORS with proper server configuration
Sizzle selector engine Replaced with native querySelectorAll
$.fn.context behavior Now always reflects the original context
$.contains() without document check Now strictly checks containment within a document

Performance Improvements

Selector engine overhaul using native APIs boosts query speed by up to 20% in benchmarks. Event handling is streamlined without legacy fallbacks.

AJAX module uses modern Fetch API internally where possible, reducing overhead. Effects module is optional in slim builds for lighter loads.

Security Enhancements

Improved script execution in .html() and .append() preserves attributes like nonce and nomodule. HTML prefilter is updated to avoid regex-based parsing issues from 3.5.

Cross-domain protections are stricter without JSONP, preventing unintended script injection.

Testing Infrastructure

Major rewrite removes deprecated dependencies like PhantomJS and old QUnit versions. Tests now run on modern browsers with better coverage.

This ensures reliability for future releases and easier maintenance.

Deprecations

Positional selectors and legacy event aliases are fully removed. jQuery.trim is deprecated in favor of native String.prototype.trim.

AMD module format is phased out; use ES modules.

Removals

Support for IE and old Android browsers is gone. Sizzle engine, JSONP, and polyfills for ES5 features are removed.

Undocumented internal APIs and unused shims are cleaned up.

Migration and Support

Use the jQuery Migrate 4.0 plugin to identify and resolve compatibility issues in existing code. Run npx jquery-migrate during development to detect deprecated or removed APIs.

Download jQuery 4.0 from the official CDN at code.jquery.com or install via npm with npm install jquery@4. Thoroughly test applications before deploying to production.

Releases In Branch 4

VersionRelease date
4.0.0-rc.218 Jan 2026
(3 months ago)
4.0.018 Jan 2026
(3 months ago)
4.0.0-rc.111 Aug 2025
(9 months ago)
4.0.0-beta.217 Jul 2024
(1 year ago)
4.0.0-beta06 Feb 2024
(2 years ago)