New in DataTables 3
DataTables 3 is a big update to DataTables and all of its extensions. While there are some notable new features, which are noted below, the most significant changes are internal, helping to improve DataTables performance and utility.
It is part of a number of related documents detailing the release of DataTables 3:
Dependency free
Since its inception, DataTables has had a hard dependency on jQuery. As of DataTables 3, that is no longer the case. DataTables will work with zero dependencies!
As part of this, there is a new DataTable.Dom library which provides DOM selection, manipulation and events. You are welcome to use this library if you like, or you can simply use native methods directly, or of course, you can continue to use jQuery if that is your preference! The new Dom library has similarities to jQuery, but is very much tailored to DataTable's requirements.
There is also DataTable.ajax() to provide Ajax abilities, and the utility functions have been significant extended to provide a core set of functions for use in DataTables and its extensions.
The upshot is that you can get now the advanced interaction tables provided by DataTables using just the single core Javascript file.
DataTables Plus
DataTables Plus is a set of premium extensions for DataTables core, including Editor and the new CardView extension. Rather than separating them out as Editor used to be, they are now fully integrated into the DataTables suite and available on both the CDN and via NPM.
If you've looked around the DataTables site before, you'll notice that it has been significantly updated, with a new design and improved navigation for the documentation, examples and reference - this is all part of the DataTables Plus updates.
To be clear, DataTables core and many of the extensions are still free open-source software under the MIT licence. A DataTables Plus licence is only required if you wish to use the premium extensions. Licensing is provided by a simple DataTable.key() method that you can provide your licence key to.
Enhanced multi-column search
The columns().search() method will now apply a search across the selected columns, allowing grouping of columns and multiple search operations to happen over multiple column groups. The new search.columns option also makes use of this new ability, providing an easy way for you to tell the table what columns should be searchable, without impact their individual searchable flags.
Typescript and internal modernisation
While this isn't a feature that directly benefits end users as it doesn't impact the UI that is presented to them, DataTables and its extensions have been fully ported to Typescript. This has helped to improve the types that it ships with and bring its internals up to date with modern standards.
And more
There is more, of course! A lot of the work for DataTables 3 has been internal updates for the core and the extensions (Typescript and zero-dependency), but there have been a number of smaller, but no less welcome, additions as well. Please see the release notes for the full list of additions and changes.