[英]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.