Responsive 3.0.0

DataTables CDN files for Responsive 3.0.0. This software was originally released on 15th February, 2024.

Release notes

As with a number of the other extensions for DataTables which are seeing major updates, Responsive also brings full support for multi-row and complex headers and footers in a DataTable. There are also a number of other smaller changes and fixes.

Responsive 3+ is not compatible with DataTables 1.x, it requires DataTables 2+ due to the use of the new APIs.


  • DataTables 2 support. Please note that Responsive 3 does not support DataTables 1.x due to the use of new API methods available only with DataTables 2.
  • Support for multi-row headers and footers
  • Support for "complex" headers and footers (with colspan and rowspan attributes).
  • Rows which are expanded (details shown, regardless of the display type) now have a dtr-expanded class on them. Previously they had a parent class which has now been updated to be more consistent with other DataTables class names.
  • listHiddenNodes renderer which moves the DOM nodes around rather than cloning them for the details display.


  • Use CSS borders to create the arrows for child row control rather than UTF-8 icons. Consistency between fonts was a problem.


  • Open / close icon was not correct for jQuery UI, Foundation and Fomantic UI when used with a modal display
  • Potential endless loop when redrawing the child row could cause a Responsive update.
  • listHiddenNodes was not reinserting the details elements while the page size was dynamically changed.
  • responsive-resize's third argument would incorrectly say that Responsive had hidden columns which were hidden by DataTables' own column visibility. For consistency with other parts of the API this has been updated to reflect only what Responsive controls.
  • When responsive.details.renderer returns false the display control does not attempt to show the row details (be it in a modal or child row).
  • Second parameter passed into responsive.details.renderer should have been an integer (the row index), instead it was given as an array. Note that this is a breaking change if you had a custom renderer. It is easy to update your code for - use a row index rather than the array. If you are using the DataTables API to get the row information based on the index passed in, it will handle this automatically so no change may be needed.
  • Remove Responsive added classes when destroying a DataTable
  • Linting errors - no functional change
  • Remove existing width from a footer when cloning
  • Cell restore for hidden nodes when no child nodes present
  • dark class is not required for Bootstrap 5


  • new constructor (rarely used) returns an instance not void
  • Fix for noImplicit any where a few parameters did not have types defined
  • Plug-in was on the wrong DataTables host object (type)


  • Consistent code formatting for code snippets


  • Consistent code formatting for examples
  • Updated to use layout in DataTables 2