jquery - Create a list dynamically using json array as an input -
i want know how produce html list dynamically using json array of objects input.
{title: "title1", param: "param1"}, {title: "title2", param: "param2"}, {title: "title3", param: "param3"} <ul data-role="listview" data-inset="true"> <li> <a href="#mypage" onclick="myfunc(param1);">title1</a> </li> <li> <a href="#mypage" onclick="myfunc(param2);">title2</a> </li> <li> <a href="#mypage" onclick="myfunc(param3);">title3</a> </li> </ul>
you can this:
var json = [ {"title": "title1", "param": "param1", "submenu": [ {"title": "subtitle1", "param": "param1-1"}, {"title": "subtitle2", "param": "param1-2", "submenu": [ {"title": "subsubtitle1", "param": "param1-1-1"}, {"title": "subsubtitle2", "param": "param1-1-2"}, {"title": "subsubtitle2", "param": "param1-1-3"} ]} ]}, {"title": "title2", "param": "param2"}, {"title": "title3", "param": "param3"} ]; var myfunc = function(param) { alert(param); }; function makelist(array, root){ if(typeof root === 'undefined'){ root = $('body'); } var ul = $("<ul></ul>"); root.append(ul); (var = 0; < array.length; i++) { var li = $("<li></li>"); ul.append(li); var = $("<a href='#' data-param='" + array[i].param + "'>" + array[i].title + "</a>"); li.append(a); a.click(function() { alert($(this).data("param")); }); if(typeof array[i].submenu !== 'undefined'){ makelist(array[i].submenu, li); } } } makelist(json); you loop through json array , put property values want, use recursion deal nested lists. put param in data attr make things bit simpler.
Comments
Post a Comment