Something like this ?: http://jsfiddle.net/RZPNG/4/
var datas = [ {href: 'some_uri', 'class': 'this-css-class'}, {href: 'another_uri', 'class': 'that-css-class'} ], ul = $('ul'); $.each(datas, function(key, value) { // initialize list createElement(value); }); function createElement(elem) { ul.append($('<li class=' + elem.class + '><a href="' + elem.href + '">' + elem.href + '</a></li>')); } function addElement(elem) { datas.push(elem); createElement(elem); } function removeElement(i) { datas.splice(i, 1); $(ul.find('li').get(i)).remove(); } addElement({href: 'foo', 'class': 'bar'}); removeElement(1);
Selection:
var datas = [ {href: 'some_uri', 'class': 'this-css-class'}, {href: 'another_uri', 'class': 'that-css-class'} ], ul = $('ul'); $.each(datas, function(key, value) { // initialize list createElement(value); }); function createElement(elem) { ul.append($('<li class=' + elem.class + '><a href="' + elem.href + '">' + elem.href + '</a></li>')); } function addElement(elem) { datas.push(elem); createElement(elem); } function removeElement(selector) { datas.splice(findElement(selector), 1); $(ul.find('li.' + selector)).remove(); } function findElement(selector) { for (var i in datas) { if (datas[i].class === selector) { return i; } } } addElement({href: 'foo', 'class': 'bar'}); removeElement('that-css-class');
source share