对从JSon数组填充的JQuery列表进行排序

JFF*_*FFF 2 arrays sorting mobile jquery json

我尝试了很多不同的方法,但似乎无法解决这个问题.我有一个JSon数组填充我的JQuery列表.列表显示正确,但我似乎无法过滤它.

我希望能够按名称或价格进行过滤.我尝试了JQuery .Filter方法和许多其他方法,但它们都失败了.我也想把它作为一个链接.(用户点击按名称排序,然后排序...)

这是迄今为止我所拥有的,我相信它会起作用.

非常感谢任何帮助,谢谢!

.js文件:

// Json array var productList = {"products": [ {"description": "Product 1", "price": "3.25"}, {"description": "Product 4", "price": "9.97"}, {"description": "Product 3", "price": "4.21"}, {"description": "Product 2", "price": "5.24"}, {"description": "Product 5", "price": "8.52"} ] };

function loadList() {

var list = $("#productList").listview();
Run Code Online (Sandbox Code Playgroud)

//将数组加载到列表中

$(productList.products).each(function(index) {
    $(list).append('<li id="listitem">' + this.description + "  " +
            "    :     " + this.price + '</li>');

     // sort by price 
     $(productList.products).filter(function ()
     { return parseFloat(this.price) < 11;})
Run Code Online (Sandbox Code Playgroud)

});

$(名单).listview( "刷新"); }

sje*_*397 6

这个排序怎么样:

var prods = productList.products.sort(function(a, b) {return parseInt(a.price) < parseInt(b.price);});
$.each(prods, function() {
    list.append("<li>" + this.description + " : " + this.price + "</li>");
});
Run Code Online (Sandbox Code Playgroud)

要按描述排序,您可以使用此代码:

var prods = productList.products.sort(function(a, b) {return a.description < b.description;});
Run Code Online (Sandbox Code Playgroud)

如果您只想过滤,可以替换:

var prods = productList.products.filter(function(item) {return parseInt(item.price) < 5;});
Run Code Online (Sandbox Code Playgroud)