Всем привет. Помогите пожалуйста разобраться с сортировкой элементов по категориям.
На данный момент я вывел все элементы - класс block
.
Но мне нужно чтобы каждый block
сортировался по категории, и был обернут в контейнер.
Сейчас у меня на выходе:
<div class='blocks' id='prices_body'>
<div class='cagories-container'>
<div class='block'>Apple</div>
<div class='block'>Nut</div>
<div class='block'>Apple</div>
</div>
</div>
А мне необходимо получить вот так:
<div class='blocks' id='prices_body'>
<div class='cagories-container'>
<div class='block'>Apple</div>
<div class='block'>Apple</div>
</div>
<div class='categories-container'>
<div class='block'>Nut</div>
</div>
</div>
Сам оригинальный код вывода категорий:
var block = '';
var categories = [];
for (var cat_temp in categories) {
for (var sub_temp in sub_cat) {
var sub_cat_prod = sub_cat[sub_temp]['products'];
for (var prod in sub_cat_prod) {
var price = 0;
if (sub_cat_prod[prod].price != null) {
if (sub_cat_prod[prod].price[sub_cat_prod[prod].price.length - 1] == 0) {
price = sub_cat_prod[prod].price.slice(0, -1);
} else {
price = sub_cat_prod[prod].price;
}
if (sub_cat_prod[prod].price[sub_cat_prod[prod].price.length - 2] == 0) {
if (sub_cat_prod[prod].price[sub_cat_prod[prod].price.length - 3] == '.') {
price = sub_cat_prod[prod].price.slice(0, -3);
} else {
price = sub_cat_prod[prod].price.slice(0, -2);
}
}
price += ' RUB';
} else {
price = '';
}
block += '<div class="block">
Some content
</div>';
}
}
}
$('#prices_body').append('<div class="categories-content">' + block + '</div>');
Если данные в более удобном виде получить не получается, нужно пересобрать контент на клиенте.
var block = '';
var categories = [];
var content = [];
for (var cat_temp in categories) {
for (var sub_temp in sub_cat) {
var sub_cat_prod = sub_cat[sub_temp]['products'];
for (var prod in sub_cat_prod) {
var price = 0;
if (sub_cat_prod[prod].price != null) {
if (sub_cat_prod[prod].price[sub_cat_prod[prod].price.length - 1] == 0) {
price = sub_cat_prod[prod].price.slice(0, -1);
} else {
price = sub_cat_prod[prod].price;
}
if (sub_cat_prod[prod].price[sub_cat_prod[prod].price.length - 2] == 0) {
if (sub_cat_prod[prod].price[sub_cat_prod[prod].price.length - 3] == '.') {
price = sub_cat_prod[prod].price.slice(0, -3);
} else {
price = sub_cat_prod[prod].price.slice(0, -2);
}
}
price += ' RUB';
} else {
price = '';
}
content.push({category: 'Apple', content:
'<div class="block">Some
content</div>'});
//block += '<div class="block">
// Some content
// </div>';
}
}
}
content.sort(function(a, b) {
return a.category[1] - b.category[1];
});
$('#prices_body').append('<div class="categories-content">' + content + '</div>');
Возможно что-то упустил, но по сути как-то так нужно сделать.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Почему count равно 5? Когда card === 2, 3, 4, 5, 6 к count надо прибавить +1 Когда card === 7, 8 , 9 к count = 0 Когда card === 10, 'J', 'Q', 'K', 'A' - count - 1
Допустим у меня есть переменные field, value и объект form :