json - 使用本地 JSON 数据填充 jQuery Mobile ListView

标签 json listview jquery-mobile

我正在尝试使用本地 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",
}];

第二个错误,您应该读取 $.each() 函数返回的 value 对象,而不是 data 数组。

$.each(data, function (index, value) {
  output += '<li><a href="#">' + value.name + '</a></li>';
});

jQueryMobile 只在页面加载时增强一次页面。当新数据动态添加到页面时,jQueryMobile 必须知道要增强的数据的数据。

JSON 数组中提取数据后,附加它们,然后刷新 ListView 以重新设置新添加元素的样式。

$('#searchFood').html(output).listview("refresh");

Demo

关于json - 使用本地 JSON 数据填充 jQuery Mobile ListView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21881830/

相关文章:

php - 在数据库与文件(.json)中保存网站设置

json - GWT RequestBuilder POST JSON 应用程序/json

c# - 如何使用 Json.NET StringEscapeHandling.EscapeNonAscii

使用 JAX-RS/RESTEasy 实现 CORS 的 Ajax 请求

C# ListView Label Edit - 控制选中的文本

c# - 将绑定(bind)分配给附加属性以隐藏 GridViewColumn

Android ListView 更新所有项目

html - Aptana Studio 3 - 使用 HTML 5 的数据角色标签时的警告

jquery - PhoneGap + jQuery Mobile + cakePHP

javascript - 谷歌图表周围的边框