Note that if you had custom plugins that depended upon jQuery, they will need to be updated, due to the removal of jQuery as a dependency. SearchBuilder now uses the Dom instance from DataTables as its DOM library.
DomsearchBuilder().container() will now return a Dom instance, not a jQuery one.Domsearch.return enabledlanguage.searchBuilder.searchcolspan for grouping rows wasn't being updated if there was more than one grouping row shown on a page.fixedHeader.adjust() will now recompute auto offsets as well as its regular calculations.1 (Monday) as it used to be.columnControl.target.dropdownClass option for dropdown which is assigned to the dropdown container, allowing customisation per column if needed.autoFocus option for dropdown. This will allow ColumnControl to automatically select an element to gain focus when the dropdown is focused. By default, this will now happen for search content types in the dropdown (e.g. the search input in searchDropdown will gain focus when displayed).searchDropdown will show a different icon (magnifying glass with a tick inside it) when there is an active search.searchcolumnControl.target.DataTable.Contextdtaf- for consistency with the other DataTables extensions. If you had custom styling that used dt-autofill- class names, you will need to update the CSS rules.columns.editField is given as an arrayThese release notes are part of a number of related documents detailing the release process for DataTables 3:
Dom and util libraries that DataTables uses internally are now available and treeshakable.Api, DataTable, Dom and util properties that can be directly imported and used as values and / or types (when using TypeScript).columns().search() will now apply a search across the selected columns. This allows grouping of columns to give searching across a sub-set of the columns.search.columns - The search feature can be given a column selector to define which columns it should apply to. This allows a subset of columns, while other columns can still be searched using the API (or another instance of the search feature).extract, boundary, etc options can be specified).language.ajax option. Basically the same as language.url, but provides the ability to be used as an object or as a function, matching ajax for its extended capabilities. It can therefore be used to add HTTP headers (csrf for example), or to send data as part of the language Ajax request. The function can be used to get data from alternative locations such as websockets or local storage.DataTable.ajax() static method which can be used to make Ajax requests.DataTable.stripHtml() now accepts a second parameter, the replacement character:eq() selector for rows based on their position in the current data setrow().cache(), cell().cache() and column().cache() - plus their plurals). These were deprecated in v2 and scheduled for removal in v3 which is now done. They were limited and error prone, with the data they access not always guaranteed to be present. The .render() method should be used instead if you were using these methods.scrollXInner option. It was used to limit the scrolling width of the table in its container. Simply make the container smaller!DataTable.camelToHungarian() method that was used for compatibilitycolumns().search() used to apply the given search term to each column. It will now apply a single search to the selected columns.columns().search() when used as a getter will return the search value for the selected columns (or an empty string if there is no search value applied). Previously it would return an API instance.api() function to access the API. The api() method stays exactly the same, but the scope is now a Dom object, since jQuery is not required by DataTables. This will only be an issue if you use this.{jqueryMethod}() in the callback functions, which is very rarely done.formatNumber is not longer executed in the scope of the settings object. Rather it is passed in as the second parameter.trigger() now returns defaultPrevented in the result set, rather than the return values, which were error prone. Only if you used trigger() and its return value will this impact you.DataTable.ext.renderer.header), the second parameter passed in is no longer a jQuery object, but rather a Dom instance. You are very unlikely to have a custom renderer here!cells() will only get the cell nodes when needed for the selector. When used with cells().every() this massively improves performance.span to be a div to allow block level elements to be nested in it.tfoot element if it is empty<template> tags in the sizing tablelanguage.ajax option, language.url is now deprecated. However, it is fully supported and not scheduled for removal. It can continue to safely be used, but new projects should use language.ajax as it provides the same features plus more.DataTable.ajax(). Ideally you should switch to CORS, but if JSONP is required, use ajax as a function, to then call jQuery.ajax if you have it on your page, or make use of some other JSONP library.DataTables.Settings to DataTable.Context for consistency.info.text example coderows().nodes() return has the nodes at the top level of the API result seteach() signatureregister to allow arrays of names for aliasesDataTable.ext objectcallback function.orderable(), nodes() and indexes().cells().every().flatten() and toArray()row().id() wasn't correctly types (used a plural instead)DataTable.version() only requires a single parameter
searchsearchList has a list of options defined on the client-side, and state saving is enabled, the s
tate saved option wouldn't be shown as enabled on reload.:visible selector will no longer include columns which are hidden by Responsive.tfoot should be the last element in the table, per the WhatWG spec:visible selector in DataTables to operate correctly in tables that use Responsive. Requires DataTables 2.3.7 for that fix to operate.
pre-row-reorder