Сортировка списка JQuery, заполненного из массива JSon - PullRequest
2 голосов
/ 30 июня 2011

Я пробовал много разных методов, но, похоже, не сработал.У меня есть массив JSon, который заполняет мой список JQuery.Список отображается правильно, но я не могу его отфильтровать.

Я бы хотел отфильтровать по имени или цене.Я попробовал метод JQuery .Filter и многие другие, и все они потерпели неудачу.Я также хотел бы сделать это как ссылку.(Пользователь нажимает кнопку сортировки по имени, и она сортирует ...)

Вот то, что у меня есть, и я убежден, что это сработает.

Любая помощь очень ценится, спасибо!1007 *

.js файл:

</p>

<p>// 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"}
]
};</p>

<p>function loadList() {</p>

<pre><code>var list = $("#productList").listview();

// загрузка массива в список

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

});

$ (список) .listview ("обновить ");}

Ответы [ 3 ]

6 голосов
/ 30 июня 2011

Как насчет сортировки :

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;});
0 голосов
/ 30 июня 2011

Было много инструментов json path (подобно xpath), появляющихся для этой цели. Проверить http://goessner.net/articles/JsonPath/

0 голосов
/ 30 июня 2011

Этот тип фильтрации обычно лучше всего выполнять на стороне сервера. Вы пытались применить фильтрацию на БД или на уровне приложений?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...