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