簡體   English   中英

對從 JSon 數組填充的 JQuery 列表進行排序

[英]Sorting a JQuery list, populated from a JSon array

我嘗試了許多不同的方法,但似乎無法解決這個問題。 我有一個 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();

// load array into list

$(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;})

});

$(list).listview("refresh"); }

這個排序怎么樣:

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>");
});

要按描述排序,您可以改用它:

var prods = productList.products.sort(function(a, b) {return a.description < b.description;});

如果你只想過濾,你可以替換:

var prods = productList.products.filter(function(item) {return parseInt(item.price) < 5;});

這種過濾通常最好在服務器端完成。 您是否嘗試過在數據庫或應用程序級別應用過濾?

出於這種目的,出現了很多 json 路徑(類似 xpath)工具。 查看http://goessner.net/articles/JsonPath/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM