我试图用本地JSON信息填充JQM ListView。但是,没有创建列表项。任何帮助,将不胜感激。这是我的代码:
JSON文件结构:
[ { "name" : "test" "calories" : "1000" "fat" : "100" "protein" : "100" "carbohydrates" : "800" }, { "name" : "test2" "calories" : "10000" "fat" : "343" "protein" : "3434" "carbohydrates" : "4343" } ]
HTML:
<div data-role="page" data-title="Search" id="searchPage"> <ul data-role="listview" data-inset="true" id="searchFood"> </ul> </div>
JS:
(更新)
$(document).on("pageinit", "#searchPage", function(){ $.getJSON("../JS/food.json", function(data){ var output = ''; $.each(data, function(index, value){ output += '<li><a href="#">' +data.name+ '</a></li>'; }); $('#searchFood').html(output).listview("refresh"); }); });
首先,返回 JSON 数组是错误的,值(属性)应以逗号分隔。
var data = [{ "name": "test", "calories": "1000", "fat": "100", "protein": "100", "carbohydrates": "800", }, { "name": "test2", "calories": "10000", "fat": "343", "protein": "3434", "carbohydrates": "4343", }];
第二个错误,您应该读取函数而非数组value返回的对象。$.each()``data
value
$.each()``data
$.each(data, function (index, value) { output += '<li><a href="#">' + value.name + '</a></li>'; });
jQueryMobile只会在页面加载后增强一次。当新数据动态添加到页面时,必须使jQueryMobile知道该数据,以便增强数据。
从 JSON 数组提取数据后,附加它们,然后 刷新 listview来重新设置新添加的元素的样式。
$('#searchFood').html(output).listview("refresh");
演示版