jquery - How to populate unordered list from array with javascript? -
i'm creating app phonegap. want loop through form of array create unordered list format url , title stored values:
<li><a href="[url]">[title]</a></li>
i'm bit new way of developing apps, , i'm not sure best way store data in root of app. guess could've made js array, want keep saved in seperate file. therefore made json file:
{ "title": "thisistheurl.com", "title": "thisistheurl.com" }
how able create list based on data local json file? tried 1 without luck:
$.getjson( "links.json", function( data ) { var items = []; $.each( data, function( key, val ) { $("linklist").append( "<li id='" + key + "'>" + val + "</li>" ); }); });
two things need change in:
$.each( data, function( key, val ) { $("linklist").append( "<li id='" + key + "'>" + val + "</li>" ); });
at first, there no element called linklist
, may wanted append elements in ul
class .linklist
or id #linklist
.
another one, inside $.each
key represents title
, value represents the url
. have assigned wrongly.
$("linklist").append( "<li id='" + key + "'>" + val + "</li>" );
it should be
$("selector").append( "<li id='" + val+ "'>" + key+ "</li>" );
and dont see a
tag here. may need add a
tag well.
also note can't have duplicate keys title
in object. in case may need go array of objects.
[{ "title": "title desire", "link" : "thisistheurl.com" },{ "title": "title desire", "link" : "thisistheurl.com" },{ "title": "title desire", "link" : "thisistheurl.com" }]
demo:
var data = [{ "title": "title desire", "link" : "thisistheurl.com" },{ "title": "title desire", "link" : "thisistheurl.com" },{ "title": "title desire", "link" : "thisistheurl.com" }]; $.each( data, function( key, val ) { var $li = $("<li><a href='"+val.link+"'>"+val.title+"</a></li>"); $("#linklist").append($li); });
ul#linklist { border: 1px solid black; } #linklist li a:link { color: red; }
<script src="//code.jquery.com/jquery-1.11.1.min.js"></script> <ul id="linklist"></ul>
Comments
Post a Comment