我有这个JSON数组
// Json array
var productList = {"products": [
{"description": "product 1", "price": "9.99"},
{"description": "product 2", "price": "9.99"},
{"description": "product 3", "price": "9.99"}
]
};
我希望它循环浏览列表视图,但不知道如何执行此操作 到目前为止我能做的就是一次列出一个项目。此外,我只能列出产品而不是产品=价格。 jQuery论坛inst帮助...谢谢!!
这是代码的其余部分
function loadList() {
// var list = document.getElementById('productList');
var list = $("#productList").listview();
var listItem = document.createElement('li');
listItem.setAttribute('id', 'listitem');
listItem.innerHTML = productList.products[0].description;
$(list).append(listItem);
$(list).listview("refresh");
和HTML文件
<html xmlns:f="http://www.lipso.com/f" xmlns:l="http://www.lipso.com/v2/lml" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<head>
<title>Page Title</title>
&meta;
<script src="@=site.cfg.resources.url@/test.js"></script>
</head>
<body onLoad="loadList()">
<div data-role="page">
<div data-role="header" id="header">
<h1>Dynamic Product List</h1>
</div>
<div data-role="content" id="content">
<ul id="productList" data-role="listview" data-inset="true" data-theme="c" data-dividertheme="b">
</ul>
</div>
</div>
</body>
</html>
答案 0 :(得分:13)
由于您已经在使用jQuery,为什么不使用$.each() function?
而不是这段代码:
var listItem = document.createElement('li');
listItem.setAttribute('id', 'listitem');
listItem.innerHTML = productList.products[0].description;
$(list).append(listItem);
使用此:
$(productList.products).each(function(index){
$(list).append('<li id="listitem">' + this.description + " = " + this.price + '</li>');
});
答案 1 :(得分:3)
$.each(productList.products, function(index, value) {
$(list).append('<li>' + value.description + ': ' + value.price + '</li>');
});
答案 2 :(得分:0)
使用下面描述的“JSON数组”或更好的命名JavaScript对象,您可以使用for循环遍历它。 productlist是一个包含数组的对象,此数组中的每个元素都是一个包含2个属性或变量(描述和价格)的对象。可以使用从0开始并在数组lenght - 1结束的典型for循环来迭代数组....每个数组元素中的对象可以通过使用“for(key in object)”表示法进行迭代。
// Json array
var productList = {"products": [
{"description": "product 1", "price": "9.99"},
{"description": "product 2", "price": "9.99"},
{"description": "product 3", "price": "9.99"}
]
};
以下是迭代Javascript对象的示例。
for (var i = 0; i < productList.products.length; i ++) {
for (var key in productList.products) {
alert(key + ":" + productList.products[key]);
}
}
答案 3 :(得分:0)
我觉得你真正需要的是.tmpl
插件来构建你的json数据列表: