循环遍历jQuery列表中的JSON数组

我有这个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文件

   Page Title &meta;    

由于您已经在使用jQuery,为什么不使用$ .each()函数 ?

而不是这个代码:

 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('
  • ' + this.description + " = " + this.price + '
  • '); });

    看看jQuery.each()

     $.each(productList.products, function(index, value) { $(list).append('
  • ' + value.description + ': ' + value.price + '
  • '); });

    使用下面描述的“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]); } } 

    在我看来,你真正需要的是.tmpl插件来从你的json数据构建你的列表:

    http://api.jquery.com/jquery.tmpl/