jQuery plugin to make HTML tables responsive

Related tags

Table/Grid FooTable
Overview

FooTable V3

This is a complete re-write of the plugin. There is no upgrade path from V2 to V3 at present as the options and the way the code is written are inherently different. Please check out the full documentation for V3 found in the docs folder or by viewing it online here.

Contributors

Pull requests need to be made against the develop branch as a new feature. I've switched to using a GitFlow process with this repository to try keep things organized a bit more. It makes it easier for me to test and make changes to submitted pull requests before merging the feature into the develop branch. The master branch now only contains release versions of the code.

Changelog

3.1.6

  • Fixed a critical issue with the new export feature throwing an error if Moment.js and the DateColumn were not included in the page.

3.1.5

  • Added two new events expanded.ft.row and collapsed.ft.row that occur after there complementary expand.ft.row and collapse.ft.row events.
  • Added a new FooTable.Export component which exposes two primary methods on the FooTable.Table object, .toJSON() and .toCSV().
  • Added a new array column type to make rendering JavaScript arrays as cell contents easier.
  • Added a new object column type to make rendering JavaScript objects containing multiple properties as cell contents easier.
  • Added a new container option to the filtering component. This option allows you to provide a selector to specify where the filtering form is rendered. The selector should match only a single element and if multiple are found only the first is used.
  • Added a new container option to the paging component. This option allows you to provide a selector to specify where the paging UI is rendered. The selector should match only a single element and if multiple are found only the first is used.
  • Added redrawSelf as an extra parameter to the FooTable.Cell#val(value, redraw, redrawSelf) and FooTable.Row#val(value, redraw, redrawSelf) methods. This parameter dictates whether the row or cell updates its' own DOM when a value is set.
  • Updated the FooTable.Paging#pageSize method to also accept string values. If the parameter is not supplied or is not a valid number the current page size is returned.
  • Updated the FooTable.Filtering#filter method to accept a single boolean param simply called focus, if supplied and true the default search input receives focus after the component performs a filter operation. This new param is used internally when auto applying a query after a user types in the search input, or clicks the search/clear buttons. This behavior can be disabled by setting the new filtering.focus option to false.
  • Updated the .formatter() function of all column types to now accept three parameters; value, options and rowData. value and options have always been available, the new addition is the rowData parameter which is an object containing the current rows' parsed values, the properties of this object match the names of the columns for the current table, if no names are specified the properties will be col1, col2, etc.
  • Updated the FooTable.HTMLColumn#sortValue method to offload additional parsing to its .parser() method.
  • Fixed an issue in the sorting component where values in a number column supplied as strings were being sorted as such and not as numbers as they should.
  • Fixed an issue with the FooTable.NumberColumn where it was converting negative numbers to positive when parsing values directly from the DOM.
  • Fixed the FooTable.Table#_construct method which was not returning a promise as it should have been doing.
  • Fixes memory leak when destroying the table, properties that were holding onto references should now be cleared.

3.1.4

  • Updated the FooTable.Table#draw method to prevent unnecessary browser reflows and hide an unstyled flash of content during the initial loading of the table. (@jleider & @mrdziuban)
  • Updated the FooTable.DateColumn#formatter method to perform a check for invalid dates and return an empty string instead of "Invalid Date". (@jnimety)
  • Updated the FooTable.Cell#collapse method to copy all attributes from the original element to the one displayed in the details row. If the element has an ID, the copied version is suffixed with "-detail" to avoid duplicates. (@mrdziuban)
  • Updated the FooTable.Column#parser method to use jQuery's .html() method instead of .text() as the latter was decoding HTML entities which were then reinserted into the DOM which opened up the possibility of XSS.
  • Removed the FooTable.Paging#_countFormat private method and replaced it with a new FooTable.Paging#format( string ) method to make custom paging UI's simpler to implement.
  • Fixed an issue with column classes and styles supplied through the options not being applied to the actual column header TH element.

3.1.3

  • Added a new dropdownTitle option to the filtering component. This options specifies a title to display at the top of the column select dropdown.
  • Added a new exactMatch option to the filtering component.
  • Added a new utility method FooTable.str.containsExact(string, match, ignoreCase).
  • Added a class footable-filtering-search to the form-group of the built in search input for the filtering component.
  • Added footable-first-visible and footable-last-visible classes to all cells (including headers) in either the first or last visible columns respectively.
  • Updated the min option default value from 3 to 1 for the filtering component.
  • Updated the load priority for rows and columns supplied via options or ajax load, they now take precedence over those supplied through the DOM to work around issues with the plugin being reinitialized multiple times on the same element.
  • Fixed an issue in the FooTable.Query object where phrases were not being matched correctly.
  • Fixed filtering component not properly clearing filters when the search input is cleared using backspace or delete.
  • Fixed the resize event not being removed when the plugin is destroyed.
  • Fixed an issue with unexpected sorting and filtering results if the sortValue and filterValue attributes contained a falsy value. The values are now subject to a strict undefined check before being passed off.
  • Fixed an issue with the date column type not sorting it's values as expected.

3.1.2

  • Added sortValue column option. This option allows you to supply your own function to retrieve the sort value for a cell.
  • Updated filtering component internals to clean things up a bit.
  • Updated filtering component search input to trigger a filtering operation on paste.
  • Updated FooTable.Filtering#addFilter method to accept an object or FooTable.Filter as the first argument to make custom filters easier to implement.
  • Updated filtering preinit and init to return a promise to make custom filters easier to implement.
  • Updated FooTable.Filter to accept a FooTable.Query as the query parameter along with the original plain string.
  • Updated paging component to expose some previously private properties to make setting a custom count label element easier.
  • Fixed issue where the filtering components min option was not being applied.
  • Fixed the paging components' countFormat option placeholder {TR} to correctly reflect filtered rows.
  • Fixed preinit unhandled exception if the table the plugin is initialized on has no class attribute.
  • Fixed issue with the individual components .ZIP missing the footable.core.bootstrap.min.css and footable.core.standalone.min.css minified files.

3.1.1

  • Added the breakpoint class to the table when columns are hidden.
  • Added an internal key used as part of the storage keys generated by the state component. Can be changed if an update breaks backwards compatibility.
  • Added the hidden option that can be used for filters. When set to true the filter is always applied to the table, can not be cleared unless removed using the FooTable.Filtering#removeFilter() method and they will not effect the default UI search/clear buttons.
  • Updated some utility functions with additional parameter checking to avoid unhandled errors under certain scenarios.
  • Updated the FooTable.Filtering#addFilter() method to expose the last three parameters of the FooTable.Filter constructor; ignoreCase, connectors and space.
  • Fixed an issue when reinitializing the plugin for a second time on a table after it's DOM had been modified by a 3rd party.
  • Fixed an issue where the FooTable.Filtering#draw() method was not setting the button to the clear icon if the filter supplied was not the default.
  • Fixed state component clearing filters supplied through options if the state value was an empty array.
  • Fixed an issue with the incorrect sort icon appearing if a column was set to just sorted=true without supplying a direction.

3.1.0

  • Added a new state component that handles the page number, sorted column and any filters applied across sessions.
  • Added in the ability to toggle the visibility of the various editing component buttons.
  • Added in a new "view" button to the editing component.
  • Added in FooTable.Rows#expand() and FooTable.Rows#collapse() methods to toggle all visible rows.
  • Added in a new FooTable.getRow() utility method to retrieve the current FooTable.Row object given a TR element or any of its' children.
  • Fixed an issue when reinitializing the plugin by doing some additional cleanup in the destroy methods for columns, rows and sorting.
  • Fixed an issue with filtering not applying correctly when filters were supplied through the options.
  • Fixed base FooTable.Component method signatures.
  • Updated the FooTable.Row#val() method to merge supplied data instead of replacing it entirely.
  • Updated the FooTable.getFnPointer() method to handle dot notation names.
  • Updated the requirement checks for columns so having at least one data-breakpoints attribute is no longer required.
  • Updated the FooTable.Filtering#filter() method to only apply all filters in the FooTable.Filtering#filters.
  • Removed the FooTable.Table#applyFilter() and FooTable.Table#removeFilter() methods.
  • Removed the FooTable.components.core and FooTable.components.internal objects.

NOTE

As of version 3.1.0 there are some backwards compatibility issues if you have done customizations like those seen in the custom dropdown filter example using the 3.0.x versions. The examples have been updated with the changes however the issues are listed below.

  1. The FooTable.Filtering#filter() method no longer accepts any arguments and is used purely to apply all filters found in the FooTable.Filtering#filters array.
  2. Due to #1 above to apply a new search filter it must now be done using the FooTable.Filtering#addFilter(name, query, columns) method using a name of "search".
  3. The internal, core and custom component arrays that existed within the FooTable.Table#components object have been removed. All components are now loaded into a single array.
  4. When registering a component you now only need to use FooTable.components.register() method instead of having to decide between FooTable.components.register(), FooTable.components.core.register() and FooTable.components.internal.register() due to #3 above.

3.0.11

  • Added in a basic expandAll option for rows.
  • Added in a FooTable.Rows#load() method to make supplying the table with new data much easier.
  • Added in a redraw parameter to the FooTable.Rows#add(),FooTable.Rows#update() and FooTable.Rows#delete() methods to allow for better bulk operations.
  • Added in new ignoreCase option for the filtering component.
  • Fixed issue with breakpoints being calculated incorrectly on mobile devices.
  • Fixed issue with the sorting component preventing the default action of click events from taking place. (think checkboxes not checking when in header)
  • Fixed issue where the events expand.ft.row and collapse.ft.row were not supplying the row as a parameter.

3.0.10

  • Added the ability to filter for empty values.
  • Fixed an issue where there were duplicate components being loaded when using the FooTable.init() constructor.
  • Fixed an issue where the FooTable.NumberColumn#thousandSeparator was being initialized with an incorrect default value.
  • Fixed an issue where the old instance id class was being left on the table when reinitializing FooTable on the same table over and over again.

3.0.9

  • Added in ready.ft.table and postinit.ft.table events.
  • Added new FooTable.Table#_construct() method to allow for easier overriding.
  • Added in three new methods for the sorting component; FooTable.Sorting#toggleAllowed(state), FooTable.Sorting#hasChanged() and FooTable.Sorting#reset().
  • Fixed an issue where the sort direction for a column marked as sorted was defaulting to DESC instead of ASC.
  • Fixed an issue where the indexOrRow parameter for the FooTable.Row#delete() and FooTable.Row#update() methods was being ignored.

3.0.8

  • Added a new editing component that provides the framework to create an editable table.
  • Added in a new option toggleSelector to allow filtering of row click events.
  • Added in a priority to component loading.
  • Added in new events expand.ft.row and collapse.ft.row.
  • Fixed an issue with the paging component where if the total number of rows was less than the page size breakpoints would not fire.
  • Fixed an issue with the paging component during resizing/drawing when there was only a single page.
  • Fixed an issue with bubbled errors and deferreds in FooTable.Table.
  • Fixed the sorting components icon padding on TH elements being overridden by Bootstrap.
  • Fixed breakpoint values being off by 1 pixel.

Comments
  • v3 and links in the table

    v3 and links in the table

    I'm trying to upgrade from version 2 to 3 and I can't figure out why it's stripping links out of my tables.

    In fact it seems like it's showing the user whatever it figures out to use as the value to sort by internally (including if given one via data-value, when the whole point of that USED to be to have one way that's easy to sort on, and one way that's better to read) This happens even on a column with data-sortable="false" set.

    Am I missing something stupid?

    opened by vita10gy 47
  • Handle Large Number of Rows

    Handle Large Number of Rows

    Hi,

    I am new to the FooTable. It is great and I like it very much But I experienced one problem, when the number of rows is large, maybe hundreds or thousands of them, FooTable is not be able to handle them. It crashes.

    So I wonder how do you guys do if you have more than 1000 rows, since it has no pagination.

    Thank you.

    supery0ung

    opened by supery0ung 34
  • Usage with ajax

    Usage with ajax

    Hello,

    First, Thank you for the plugin.

    I would also like to apologize in advance if this is not a bug/issue but due to my lack of knowledge and should be posted elsewhere...

    I'm trying to use footable with JQM, the data is retrieved via a REST service. The response is in json format and it seemed that every time i make an $.ajax or $.getJSON call, the table is filled but it loses its responsiveness.

    At first, i thought that it may have something to do with JQM but it doesn't seem to be the case.

    For example. If i fork footable's gist and replace the following code in data-generator.js

    Original code: This of course works :+1: .

    rows = rows || 100;
        extraCols = extraCols || 0;
        for (var i = 0; i < rows; i++) {
          var data = {
            firstName: firstNames[Math.floor(Math.random() * firstNames.length)],
            lastName: lastNames[Math.floor(Math.random() * lastNames.length)],
            jobTitle: jobTitles[Math.floor(Math.random() * jobTitles.length)],
            status: statuses[Math.floor(Math.random() * statuses.length)],
            dob: randomDate()
          };
          var row = '<tr>';
          //row += '<td class="expand"></td>';
          row += '<td>' + data.firstName + '</td>';
          row += '<td>' + data.lastName + '</td>';
          row += '<td>' + data.jobTitle + '</td>';
          row += '<td data-value="' + data.dob.getTime() + '">' + data.dob.getDate() + ' ' + months[data.dob.getMonth()] + ' ' + data.dob.getFullYear() +'</td>';
          row += '<td data-value="' + data.status.value + '">' + data.status.name + '</td>';
          for (var j = 0; j < extraCols; j++) {
            row += '<td>' + (i+1) + '.' + (j+1) + '</td>';
          }
          row += '</tr>';
          document.writeln(row);
        }
    

    Manually constructed Json code: This also works.

        var mydata = '{ "data": [';
            mydata += '{"firstName":"Maxine","lastName":"Haner","jobTitle":"Technical Services Librarian","dob":"6 Aug 1976","status":"Active"},';
            mydata += '{"firstName":"Maxine","lastName":"Haner","jobTitle":"Religious Activities Director","dob":"12 Aug 1956","status":"Disabled"},';
            mydata += '{"firstName":"JSON","lastName":"http://www.json.org/","jobTitle":"blah blah blah","dob":"0213876","status":"Disabled"}';
            mydata += '] }';
    
            var json = $.parseJSON(mydata);
    
               for(var i=0; i < json.data.length; i++){
    
                    var row = '<tr>';
    
                    row += '<td>' + json.data[i].firstName+ '</td>';
                    row += '<td>' + json.data[i].lastName + '</td>';
                    row += '<td>' + json.data[i].jobTitle + '</td>';
                    row += '<td>' + json.data[i].dob + '</td>';
                    row += '<td>' + json.data[i].status + '</td>';
    
                    row += '</tr>';
    
                    $("table tbody").append(row);
    
                }
    

    Result: image

    Google json: Table is filled but is no longer responsive

        var url = 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=json&callback=?';
    
           $.getJSON(url,function(response) {
    
               for(var i=0; i < response.responseData.results.length; i++){
    
                    var row = '<tr>';
    
                    row += '<td>' + response.responseData.results[i].titleNoFormatting + '</td>';
                    row += '<td>' + response.responseData.results[i].url + '</td>';
                    row += '<td>' + response.responseData.results[i].GsearchResultClass + '</td>';
                    row += '<td>' + response.responseData.results[i].visibleUrl + '</td>';
                    row += '<td>' + response.responseData.results[i].visibleUrl + '</td>';
    
                    row += '</tr>';
    
                    $("table tbody").append(row);
    
                }
           });
    

    Result: Same thing happens with the jqm app accesing the internal rest service. image

    It looks to like the footable's attributes are not applied to the individual cells anymore.

    I'm not sure if this is 'by design', a bug/issue with footable, jquery or 'most likely' me :).

    Can somebody shed a light on what is happening here?

    Thanks

    enhancement question 
    opened by MrBushid0 30
  • Is V3 support Paging on Server-Side?

    Is V3 support Paging on Server-Side?

    Hi, Great plugin - thanks for that!

    I got problem with Paging on server-side, and i lookup some issues such as V3 - JsDoc Online ? #317 .

    I can't understand why FooTable use javascript do paging still now , a big data (100,0000+) should't be load to the page .

    My idea is to create a table, including the thead, then I tbody and tfoot should use ajax to get, such as:

    current-page: 100,
    current-page-rows:[
        {id:1,name:'thttt'},
        ...
    ],//as long as page-size, e.g.10
    total-page:100000
    

    then FooTable init tfoot like this:

    Frist-Page,Pre-Page,...,97,98,99,100,101,102,103,...,Next-Page,Last-Page
    

    then fill current-page-rows in tbody.

    Please help for it, thanks. I am waiting for your reply.

    opened by THTTT 19
  • Add package manager project definitions

    Add package manager project definitions

    Suggestion to add package manager project definitions.

    NPM https://npmjs.org/doc/json.html

    Bower http://bower.io/

    There is another called Component, which I admit to never having used. https://github.com/component/component

    If I can find a bit more time later I'll file a PR for NPM and Bower at least.

    Thanks!

    enhancement 
    opened by dboune 18
  • Filter specific columns

    Filter specific columns

    Is there a way to filter only on a specific column? I have this setup to display issue statues and if someone types in open I want it to filter all the cases that haven't been resolved yet. The closed field has the text open in it but the subject field could also contain open so I don't want those results to show in the filter.

    Any help would be appreciated! Thanks

    enhancement 
    opened by ghost 17
  • Redraw Footable with new data on click on a tab

    Redraw Footable with new data on click on a tab

    Hey All,

    I've actually this configuration in my HTML for my footable : <table id="editing-example" class="table" style="visibility: hidden;" data-sort="true" data-editing-show-text='<span class="fooicon fooicon-pencil" aria-hidden="true"></span> Edit rows' data-editing="true" data-editing-always-show="true" data-editing-add-test="Ajouter un nouvel interlocuteur" data-filtering="true" data-editing-edit-text='<span class="fooicon fooicon-pencil" aria-hidden="true"></span>' data-paging="true" ></table>

    It's working fine, but I need to reload the data when I click on a tab. But each time, It copy/past the configuration, like I've 2 input text to search something, after 3 input, 4, 5... Each click on my tab, one more configuration is displayed.

    How can I fix it?

    Thanks, and congrats for ur plugin !

    opened by JujuPomme 16
  • preliminary, but fully working pagination plugin with demo

    preliminary, but fully working pagination plugin with demo

    This will need a bit of re-factoring. I'm not sure why I'm using data-page attributes on the nav links (I could just use the html value number), and I could probably drop or rename a few pageThis and pageThat variables.

    Overall it works good though I think.

    The main issue is that I'm not sure how to approach tying this with the filter plugin. It works but the results won't update the navigation. They both show and hide rows, so I need someway of knowing how many rows are being displayed after a filter is made, to update my pagination, I think.

    Thanks for a great piece of software, I enjoyed and learned a lot from your methodology.

    opened by alonextou 16
  • LESS version and CSS adjustments

    LESS version and CSS adjustments

    Adding LESS version for default style and improved the complexity of the cascade in CSS.

    Notify me any problem.

    I hope it will be useful.

    PS. Congratulations for this project, simply wonderful.

    opened by felipefialho 16
  • Filter component focus lost

    Filter component focus lost

    Hey,

    First of all thanks for this cool plugin, it works very well. I have one question about something i ran into. I enabled the filter functionality and when the user is done typing the focus is lost on the filtering inputbox. Is there a way to still have this focus on the inputbox? I think this is more user friendly.

    Greetings from the Netherlands, Ro

    opened by DrunkenMoose 15
  • Multiple Filters

    Multiple Filters

    Hi,

    Is it possible to filter on several keys instead of one? I've tried a few ways but none work. I possibly missed something or does it support this?

    Thanks!

    question 
    opened by bluebrat 14
  • Search values with

    Search values with "&" inside

    I have rows with cells with "&" into the text like for example "K&Q" If I search exactly "K&Q" results are zero. If I search "K & Q" i got them

    What could be the reason and how to solve?

    Here below the settings "paging": { "enabled": true }, "filtering": { "enabled": true, "connectors": false, "space": "AND", "min":3 }, "sorting": { "enabled": true }, "state": { "enabled": false }, 'components': { 'filtering': FooTable.MyFiltering }

    opened by ssada1975 0
  • Search a string with

    Search a string with "_" and "-" does not work

    (Footable 3.1.6) Hi guys. I've a table in which there are text records like: SOMETHING_SOM-ETH-010_username.

    • If I type in the search textbox "SOMETHING_SOM-ETH-010", it produces 0 results.
    • if I type the complete string SOMETHING_SOM-ETH-010_username, it works.
    • If I type "SOMETHING_SOM-ETH", it works.
    • If I type "SOMETHING_SOM-ETH-", it works.
    • If I type "SOMETHING_SOM-ETH-0", it does not work.

    I've already tried to put in a script:

    $(document).ready(function () { $("#mytable").footable({ "filtering": { "exactMatch": true } }); });

    opened by rsslldblsnglll 0
  • Footable with jQuery 3.x is very slow - with 2.x is fast

    Footable with jQuery 3.x is very slow - with 2.x is fast

    I tested it with only 100 lines. The rows load (rendering) is significantly slower. And paging and searching are also slow. I changed the jQuery library to version 2.x and it became lightning fast. The speed difference is approx. 10-20 times (I didn't measure it, only an estimate. well perceptible difference).

    opened by Akron99 0
  • Exact Query with space in filter on dropdown

    Exact Query with space in filter on dropdown

    I have a select with a list of items, an example.

    <select name="select_users_filter">
    <option>ООО "Space Word"</option>
    <option>ОАО "Газпром"</option>
    <optioni>Sofi Os</option>
    <option>QWErti pas</option>
    <option>ООО "Sampo"</option>
    </select>
    

    But when filtering where there is a OOO gap " the request does not go through and gives a void.

    How do I set space for an exact query with dropdown list

    opened by EvgenyMX 0
  • Append new row when api detect income data

    Append new row when api detect income data

    Hi there, I am trying to implement Footable into my websites, I encounter a problem with using append or prepend. Every time I append a new row into the data table. It did not redraw and check if the current page is fully occupied with data. How can I work around this error?

    var html = '<tr class="bid-item bid-item-' + value.id;
            html += ' bid-item-customer-id-' + value.id + '" data-id="' + value.id + '" data-customer-id=" ' + value.customer_id + '">';
            html += '<td data-fb-user-id="' + value.fb_user_id + '" style="display: table-cell;"></td>';
            html += '<td style="display: table-cell;">' + value.from.name + '<p>(' + value.from.id + ')</p></td>';
                    html += '<td style="display: table-cell;"><form method="post" class="form-bid-item-action" action="{{ config('app.url') }}/admin/bid/' + value.id + '/action">';
            html += '<input type="hidden" name="_token" value="' + value.csrf + '"><div class="input-group">';
            html += '</div></form></td><td style="display: table-cell;">' + value.message + '</td><td style="display: table-cell;">' + timeCreated + '</td>';
            html += '</td></tr>';
    
          $('.bid-list-table tbody').append(html);  
    

    I am using a Facebook API to do this, where every income message is detected. it will send to my website and display. The problem is that it does not auto-paginate once it reached the max paginate value. only if I refresh my page then it will show correctly

    Thanks for taking your time.

    opened by stevenleesf 0
Releases(2.0.3)
Live searching/filtering for HTML tables in a jQuery plugin

jQuery Filter Table Plugin This plugin will add a search filter to tables. When typing in the filter, any rows that do not contain the filter will be

Sunny Walker 175 Oct 29, 2022
A JQuery plugin to create AJAX based CRUD tables.

What is jTable http://www.jtable.org jTable is a jQuery plugin used to create AJAX based CRUD tables without coding HTML or Javascript. It has several

Volosoft 1.1k Nov 17, 2022
jQuery plugin for stacking tables on small screens

stacktable.js The Responsive Tables jQuery plugin for stacking tables on small screens. The purpose of stacktable.js is to give you an easy way of con

John Polacek 1k Nov 24, 2022
An Obsidian plugin to provide an editor for Markdown tables

An Obsidian plugin to provide an editor for Markdown tables. It can open CSV data and data from Microsoft Excel, Google Sheets, Apple Numbers and LibreOffice Calc as Markdown tables from Obsidian Markdown editor.

Ganessh Kumar 107 Nov 28, 2022
jQuery plugin to export a html table to JSON, XML, CSV, TSV, TXT, SQL, Word, Excel, PNG and PDF

tableExport.jquery.plugin Export HTML Table to CSV DOC JSON PDF PNG SQL TSV TXT XLS (Excel 2000 HTML format) XLSX (Excel 2007 Office Open XML format)

null 911 Nov 20, 2022
jQuery grid plugin

jqGrid jQuery grid plugin jqGrid is an Ajax-enabled JavaScript control that provides solutions for representing and manipulating tabular data on the w

Tony Tomov 2.8k Nov 21, 2022
jQuery plugin to show a tree structure in a table

jQuery treetable jQuery treetable is a plugin for jQuery, the 'Write Less, Do More, JavaScript Library'. With this plugin you can display a tree in an

Ludo van den Boom 734 Nov 14, 2022
Lightweight Grid jQuery Plugin

jsGrid Lightweight Grid jQuery Plugin Project site js-grid.com jsGrid is a lightweight client-side data grid control based on jQuery. It supports basi

Artem Tabalin 1.5k Nov 27, 2022
A stupidly small and simple jQuery table sorter plugin

Stupid jQuery Table Sort This is a stupid jQuery table sorting plugin. Nothing fancy, nothing really impressive. Overall, stupidly simple. Requires jQ

Joseph McCullough 710 Sep 23, 2022
Fixed . Doesn't need any custom css/html. Does what position:sticky can't

jquery.floatThead Documentation & Examples: http://mkoryak.github.io/floatThead/ Float the table header on scroll. No changes to your HTML/CSS are req

Misha Koryak 1.2k Oct 9, 2022
Shrinks any large data tables into compact and responsive tables

jquery.table-shrinker A Jquery plugin to make HTML Table responsive across all devices, the right way! Demo Click here to see the demo, remember to re

null 29 Sep 11, 2022
An Obsidian plugin to paste Excel tables as Markdown tables in Obsidian editor.

Obsidian Excel to Markdown Table An Obsidian plugin to paste Excel tables as Markdown tables in Obsidian editor. Demo You can paste the copied Excel d

Ganessh Kumar 96 Nov 26, 2022
Live searching/filtering for HTML tables in a jQuery plugin

jQuery Filter Table Plugin This plugin will add a search filter to tables. When typing in the filter, any rows that do not contain the filter will be

Sunny Walker 175 Oct 29, 2022
A jQuery plugin for making html tables searchable and sortable with pagination

jQuery.fancyTable A jQuery plugin for making html tables searchable and sortable with pagination. Live demo See a live demo on CodePen Installation Us

null 43 Nov 24, 2022
Responsive Tabs is a jQuery plugin that provides responsive tab functionality.

Responsive Tabs is a jQuery plugin that provides responsive tab functionality. The tabs transform to an accordion when it reaches a CSS breakpoint. You can use this plugin as a solution for displaying tabs elegantly on desktop, tablet and mobile.

Jelle Kralt 535 Nov 9, 2022
The perfect library for adding search, sort, filters and flexibility to tables, lists and various HTML elements. Built to be invisible and work on existing HTML.

List.js Perfect library for adding search, sort, filters and flexibility to tables, lists and various HTML elements. Built to be invisible and work on

Jonny Strömberg 10.9k Nov 29, 2022
A JQuery plugin to create AJAX based CRUD tables.

What is jTable http://www.jtable.org jTable is a jQuery plugin used to create AJAX based CRUD tables without coding HTML or Javascript. It has several

Volosoft 1.1k Nov 17, 2022
jQuery plugin for stacking tables on small screens

stacktable.js The Responsive Tables jQuery plugin for stacking tables on small screens. The purpose of stacktable.js is to give you an easy way of con

John Polacek 1k Nov 24, 2022
Largetable - jQuery plugin to scroll in/maximize large tables

largetable jQuery plugin to scroll in/maximize large tables Usage Install with npm: $ npm install largetable Then include largetable files in the HTM

Edinum 1 Feb 3, 2021
Render readable & responsive tables in the terminal

terminal-columns Readable tables for the terminal. Tables can be automatically responsive! Features Content wrapped to fit column width Column widths

hiroki osame 28 Oct 28, 2022