Here is an example of a list with List.js applied. List.js can be used in three different ways. It can be on existing HTML, it can create it's own HTML or a combination of both methods.
1990
1985
1986
1983
<div id="users"> <!-- class="search" automagically makes an input a search field. --> <input class="search" placeholder="Search" /> <!-- class="sort" automagically makes an element a sort buttons. The date-sort value decides what to sort by. --> <button class="sort" data-sort="name"> Sort </button> <!-- Child elements of container with class="list" becomes list items --> <ul class="list"> <li> <!-- The innerHTML of children with class="name" becomes this items "name" value --> <h3 class="name">Jonny Stromberg</h3> <p class="born">1986</p> </li> <li> <h3 class="name">Jonas Arnklint</h3> <p class="born">1985</p> </li> <li> <h3 class="name">Martina Elm</h3> <p class="born">1986</p> </li> <li> <h3 class="name">Gustaf Lindqvist</h3> <p class="born">1983</p> </li> </ul> </div>
var options = { valueNames: [ 'name', 'born' ] }; var userList = new List('users', options);
<div id="users"> <input class="search" placeholder="Search" /> <button class="sort" data-sort="name"> Sort </button> <ul class="list"> <!-- This, the first element in the list, will be used as template for new items. --> <li> <h3 class="name">Jonny Stromberg</h3> <p class="born">1986</p> </li> </ul> </div>
var options = { valueNames: [ 'name', 'born' ] }; // These items will be added to the list on initialization. var values = [ { name: 'Jonas Arnklint', born: 1985 }, { name: 'Martina Elm', born: 1986 } ]; var userList = new List('users', options, values); // It's possible to add items after list been initiated userList.add({ name: 'Gustaf Lindqvist', born: 1983 });
<div id="users"> <input class="search" placeholder="Search" /> <button class="sort" data-sort="name"> Sort </button> <ul class="list"></ul> </div>
var options = { valueNames: [ 'name', 'born' ], // Since there are no elements in the list, this will be used as template. item: '<li><h3 class="name"></h3><p class="born"></p></li>' }; var values = [ { name: 'Jonny Strömberg', born: 1986 }, { name: 'Jonas Arnklint', born: 1985 }, { name: 'Martina Elm', born: 1986 } ]; var userList = new List('users', options, values); userList.add({ name: 'Gustaf Lindqvist', born: 1983 });
List.js: native JavaScript that makes your plain HTML lists super flexible, searchable, sortable and filterable - https://t.co/nOoE1RJg
— Smashing Magazine (@smashingmag) December 17, 2011
Search, sort, and filter your #HTML tables, lists, and more with List.js https://t.co/4BHjmOEU56 – dev'd by @javve log'd by @jerodsanto #js
— The Changelog (@TheChangelog) November 29, 2013
List.js: Add Search, Sort and Flexibility to HTML Lists or Tables - https://t.co/ygEp2Tk7Pu (“Native” JavaScript, no dependencies.)
— JavaScript Daily (@JavaScriptDaily) May 18, 2013