Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.55/40: Рейтинг темы: голосов - 40, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 23.06.2016
Сообщений: 31

Вывести товары из массива JSON по табам

11.03.2019, 17:24. Показов 8494. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите с заданием, сделал 5 табов на html и css, хотя бы пример покажите и я дальше сам сделаю. Всем благодарен.

Тестовое задание

Необходимо задействовать:
HTML, CSS, JavaScript

Задача:
Вывести товары из массива JSON по табам. Сами товары выводить не статично, а циклом. Разбиваем товары на 5 табов: в 1 табе товары из 1 категории, во 2 табе товары из 2 категории и т.д. По возможности делать без использования jQuery, но если без него никак - делаем с ним. JS пишем по CodeStyle Airbnb.
Завёрстывать красивый дизайн не обязательно, главное чтоб было ровно и по сетке.
Вёрстку делаем адаптивной.

Пример данных в JSON:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
var products = [
    {productId:1, productName: 'Товар 1', categoryId:1},
    {productId:2, productName: 'Товар 2', categoryId:2},
    {productId:3, productName: 'Товар 3', categoryId:3},
    {productId:4, productName: 'Товар 4', categoryId:4},
    {productId:5, productName: 'Товар 5', categoryId:5},
    {productId:6, productName: 'Товар 6', categoryId:1},
    {productId:7, productName: 'Товар 7', categoryId:2},
    {productId:8, productName: 'Товар 8', categoryId:3},
    {productId:9, productName: 'Товар 9', categoryId:4},
    {productId:10, productName: 'Товар 10', categoryId:5},
    {productId:11, productName: 'Товар 11', categoryId:1},
    {productId:12, productName: 'Товар 12', categoryId:2},
    {productId:13, productName: 'Товар 13', categoryId:3},
    {productId:14, productName: 'Товар 14', categoryId:4},
    {productId:15, productName: 'Товар 15', categoryId:5},
    {productId:16, productName: 'Товар 16', categoryId:1},
    {productId:17, productName: 'Товар 17', categoryId:2},
    {productId:18, productName: 'Товар 18', categoryId:3},
    {productId:19, productName: 'Товар 19', categoryId:4},
    {productId:20, productName: 'Товар 20', categoryId:5},
    {productId:21, productName: 'Товар 21', categoryId:1},
    {productId:22, productName: 'Товар 22', categoryId:2},
    {productId:23, productName: 'Товар 23', categoryId:3},
    {productId:24, productName: 'Товар 24', categoryId:4},
    {productId:25, productName: 'Товар 25', categoryId:5}
];
 
var categories = [
    {categoryId:1, categoryName: 'Футболки'},
    {categoryId:2, categoryName: 'Майки'},
    {categoryId:3, categoryName: 'Носки'},
    {categoryId:4, categoryName: 'Джинсы'},
    {categoryId:5, categoryName: 'Брюки'},
];
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.03.2019, 17:24
Ответы с готовыми решениями:

решение задачи
помогите решить задачу с функцией на javascript

решение задачи
написал код, но почему-то не работает. можете исправить? задание на картинке <html> <head> <title> формула...

решение задачи
написал примерный код, но не пойму, почему не работает. задание на картинке <html> <head> <title> Нахождение...

22
Эксперт JS
6497 / 3908 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
12.03.2019, 17:56
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Mr_Sergo Посмотреть сообщение
важно понимание как работают циклы, а сама задача довольна проста.
Есть видео, как один из разработчиков движка V8 объяснял, как V8 оптимизирует циклы. Говорит - как оптимизирует, знают единицы людей. И никакими тестами скорость измерить невозможно, потому что движок обходит тестовые условия и всё равно оптимизирует.
0
0 / 0 / 0
Регистрация: 08.01.2018
Сообщений: 5
31.03.2020, 23:45
Доброго времени суток!
Отличная работа! Но не могли бы Вы еще подсказать как сделать в каждой вкладке button loadmore, которая выводила бы N-ное к-во позиций,а изначально так же выводилось N-ное к-во позиций и вкладку в которой будут отображаться сразу все категории.
Заранее спасибо!
Миниатюры
Вывести товары из массива JSON по табам  
0
0 / 0 / 0
Регистрация: 08.01.2018
Сообщений: 5
01.04.2020, 12:12
Цитата Сообщение от Mr_Sergo Посмотреть сообщение
Vovka163,

Так -> https://codepen.io/Mr_Sergo/pen/NJaqXz ?
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<div class="tabs">
    <input id="tab1" type="radio" name="tabs" checked>
    <label for="tab1" title="Вкладка 1"></label>
 
    <input id="tab2" type="radio" name="tabs">
    <label for="tab2" title="Вкладка 2"></label>
 
    <input id="tab3" type="radio" name="tabs">
    <label for="tab3" title="Вкладка 3"></label>
 
    <input id="tab4" type="radio" name="tabs">
    <label for="tab4" title="Вкладка 4"></label>
 
    <input id="tab5" type="radio" name="tabs">
    <label for="tab5" title="Вкладка 5"></label>
 
    <section id="content-tab1"><p>Здесь размещаете любое содержание....</p></section>
    <section id="content-tab2"><p>Здесь размещаете любое содержание....</p></section>
    <section id="content-tab3"><p>Здесь размещаете любое содержание....</p></section>
    <section id="content-tab4"><p>Здесь размещаете любое содержание....</p></section>
    <section id="content-tab5"><p>Здесь размещаете любое содержание....</p></section>
</div>
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
var products = [
    {productId:1, productName: 'Товар 1', categoryId:1},
    {productId:2, productName: 'Товар 2', categoryId:2},
    {productId:3, productName: 'Товар 3', categoryId:3},
    {productId:4, productName: 'Товар 4', categoryId:4},
    {productId:5, productName: 'Товар 5', categoryId:5},
    {productId:6, productName: 'Товар 6', categoryId:1},
    {productId:7, productName: 'Товар 7', categoryId:2},
    {productId:8, productName: 'Товар 8', categoryId:3},
    {productId:9, productName: 'Товар 9', categoryId:4},
    {productId:10, productName: 'Товар 10', categoryId:5},
    {productId:11, productName: 'Товар 11', categoryId:1},
    {productId:12, productName: 'Товар 12', categoryId:2},
    {productId:13, productName: 'Товар 13', categoryId:3},
    {productId:14, productName: 'Товар 14', categoryId:4},
    {productId:15, productName: 'Товар 15', categoryId:5},
    {productId:16, productName: 'Товар 16', categoryId:1},
    {productId:17, productName: 'Товар 17', categoryId:2},
    {productId:18, productName: 'Товар 18', categoryId:3},
    {productId:19, productName: 'Товар 19', categoryId:4},
    {productId:20, productName: 'Товар 20', categoryId:5},
    {productId:21, productName: 'Товар 21', categoryId:1},
    {productId:22, productName: 'Товар 22', categoryId:2},
    {productId:23, productName: 'Товар 23', categoryId:3},
    {productId:24, productName: 'Товар 24', categoryId:4},
    {productId:25, productName: 'Товар 25', categoryId:5}
];
 
var categories = [
    {categoryId:1, categoryName: 'Футболки'},
    {categoryId:2, categoryName: 'Майки'},
    {categoryId:3, categoryName: 'Носки'},
    {categoryId:4, categoryName: 'Джинсы'},
    {categoryId:5, categoryName: 'Брюки'},
];
 
var label = document.querySelectorAll('.tabs label');
var content = document.querySelectorAll('.tabs section p');
 
for(var i in categories){
    content[+i].innerText = '';
    label[+i].innerText = categories[+i].categoryName;
    for(var j in products)
        if(categories[+i].categoryId == products[+j].categoryId)
            content[+i].innerText += ' ' + products[+j].productName;
}
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
.tabs {
min-width: 520px;
max-width: 800px;
padding: 0px;
margin: 0 auto;
}
 
.tabs>section {
display: none;
padding: 15px;
background: #fff;
border: 5px solid #ddd;
height: 300px;
}
 
.tabs>input {
display: none;
position: absolute;
}
 
.tabs>label {
display: inline-block;
margin: 0 0 -1px;
padding: 15px 25px;
font-weight: 600;
text-align: center;
color: #aaa;
border: 5px solid #ddd;
border-width: 1px 1px 1px 1px;
background: #f1f1f1;
border-radius: 3px 3px 0 0;
}
 
.tabs>label:hover {
color: #888;
cursor: pointer;
}
 
.tabs>input:checked+label {
color: #555;
border-top: 1px solid #009933;
border-bottom: 1px solid #fff;
background: #fff;
}
 
#tab1:checked~#content-tab1, 
#tab2:checked~#content-tab2, 
#tab3:checked~#content-tab3, 
#tab4:checked~#content-tab4, 
#tab5:checked~#content-tab5 
{
display: block;
}
 
@media screen and (max-width: 680px) {
.tabs>label {
font-size: 0;
}
.tabs>label:before {
margin: 0;
font-size: 18px;
}
}
 
@media screen and (max-width: 400px) {
.tabs>label {
padding: 15px;
}
}
Добавлено через 6 минут
Vovka163,

Если разрешено во всех p удалить Здесь размещаете любое содержание.... то удаляйте, и тогда строку 41 в js тоже можно удалить
Не правильно отправил сообщение ранее. Вопрос выше. Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.04.2020, 12:12

Проверьте, пожалуйста решение задачи
Добрый день. Помогите разобраться в детской задаче: Создайте функцию конструктор, которая создает объект со свойством экземпляра,...

Эо не проблема, но хотелось бы узнать решение такой задачи! :D
Есь страница с картинками которые грузятся не сразу... На странице есть центральная часть где предполагается вывод текста. Задача...

Объясните решение задачи "Решето Эратосфена"
Целое число, большее 1, называется простым, если оно не делится нацело ни на какое другое, кроме себя и 1. Древний алгоритм «Решето...

Решение простой задачи
Всем привет! Сейчас читаю книгу по jQuery и там есть задачка. Цитирую дословно: Выбрать элементы &lt;span&gt; содержащие текст Hello и...

Найти решение уравнения, изоклинную и интегральную кривые, решение задачи Коши
Помогите пожалуйста! а) Найти решение вида: x=a,y=b,y=kx+b y'=\frac{y^2-4}{xy},\\ y'=x-y+2 б) Какая кривая является одновременно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Новые блоги и статьи
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе. Самым главным критерием для меня было создание паролей, в котором отсутствуют знаки: | 1 l I Обработка содержит реквизиты: -. . .
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store. И так: 1. Скачиваем с. . .
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге). Задача: Программно добавить префикс в нумерацию документов. Решение: В модуле объекта. . .
После закрытия оутлука продолжает висеть процесс в диспетчере задач
Maks 27.10.2026
С недавнего времени в продакшене возникла проблема: при закрытии оутлука в диспетчере задач продолжал висеть процесс outlook. exe. Проблема возникла после установки MS Office 2021 LTSC на машинах, под. . .
Baragoz - DPS/HPS бот для WoW 3.3.5a, многоязычный
AmbA 26.10.2026
Хотите ещё ботов? У меня есть один! А я пока отдохну от него. https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=12062&stc=1&d=1793007952 Инструкция внутри. https:/ / youtu. be/ VpfFZSUDGnQ. . .
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru