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); 

here's fiddle

you loop through json array , put property values want, use recursion deal nested lists. put param in data attr make things bit simpler.


Comments

Popular posts from this blog

java - How to specify maven bin in eclipse maven plugin? -

single sign on - Logging into Plone site with credentials passed through HTTP -

php - Why does AJAX not process login form? -