Списки: поиск и сортировка элементов списка

9 минут на чтение

Списки – один из самых распространенных и информативных элементов разметки. Часто возникает задача организации работы со списками на странице: поиск, сортировка, фильтрация. Все эти функции позволяют существенно повысить эффективность и удобство работы со списками.

В данной статье рассмотрим JS библиотеку List.js.

Возможности и преимущества

Основные функции:
  • поиск,
  • сортировка,
  • фильтрация,
  • возможность редактирования списков (добавление, удаление, изменение элементов).
Преимущества:
  • легкий и быстрый,
  • прост в использовании,
  • уверенно обрабатывает большое количество (порядка нескольких тысяч) элементов.

Быстрый старт

Создадим необходимую разметку:

На что необходимо обратить внимание:

  • структура HTML – поиск и кнопка сортировки должны находиться внутри контейнера, содержащего список, при необходимости их можно вынести за пределы контейнера, смотреть здесь.
  • классы элементов – элементы Input, button и ul  должны принадлежать определенным классам, наименование этих классов можно изменить через параметр options, есть значения по умолчанию search, sort и list соответственно.
  • data-sort – для работы кнопки сортировки необходимо задать параметр data-sort , в котором указать класс элемента , по значению которого будет происходить сортировка списка. В нашем случае – это параграф с классом list_item.

Первоначально плагин необходимо скачать или подключить через CDN, подключить list.js.

Для работы поиска и сортировки необходимо создать экземпляр объекта List:

где id/element – это Id элемента содержащего список, options  – набор параметров, необходимых для работы плагина, values – необязательный параметр, позволяет дополнительно добавлять элементы в список при инициализации.

Также необходимо задать параметры, для чего создадим переменную options:

в которой укажем класс элементов списка, подлежащих процедуре поиска/сортировки, в нашем случае это будет параграф с классом list_item .

Обратите внимание, что при создании экземпляра класса List, в качестве первого параметра указывается идентификатор контейнера, содержащего список, а не его класс.

В итоге получаем следующий скрипт:

See the Pen WOV_listjs_search_sort_181107_0.1 by Paul (@1110000) on CodePen.

Дополнительные возможности

Изменение наименований классов

Свои классы для поиска, сортировки и списка можно назначить путем передачи через options параметров listClass, searchClass, sortClass:

Добавление элементов списка при инициализации скрипта

При инициализации скрипта можно добавить новые элементы, перечислив их в массиве:

Вынос поля поиска за пределы элемента-контейнера, содержащего список

При такой структуре, необходимо прописать в скрипте обработчик события ввода в поле поиска,  и передать вводимое значение методу search() :


В статье перечислены основные моменты, которые нужно знать для начала работы с плагином. Данный плагин также позволяет редактировать списки (добавлять, удалять, редактировать элементы), работать с таблицами, поддерживает алгоритм нечеткого поиска (“fuzzy search”), позволяющего выполнять свои функции даже при наличии опечаток.

Facebook Vk Ok Twitter Telegram

Похожие записи:

Часто встречающаяся задача создания пользовательского интерфейса с возможностью сортировки элементов. Для наглядного представления сортируемых элементов больше всего подходят списки или таблицы. В данной статье рассмотрим как организовать сортировку элементов ...
Всплывающие подсказки существенно улучшают интерфейс и делают сайт более удобным и понятным для пользователя. В стандартном исполнении они позволяют оптимизировать навигацию, улучшить внешний вид элементов управления. Однако, функциональность стандартных всплы...