Cash — это лёгкая альтернатива jQuery, предоставляющая удобный API для работы с DOM, событиями и AJAX в современном JavaScript. Основная цель библиотеки — минимизация размера кода при сохранении привычного синтаксиса для манипуляций с элементами страницы.
Библиотека реализована как функция cash(), которая
возвращает коллекцию элементов, с которыми можно работать аналогично
объекту jQuery. Внутри коллекция представляет собой массивоподобный
объект с методами для поиска, фильтрации, изменения и управления
событиями.
const elems = cash('div.example');
elems.addClass('highlight');
Основной метод: cash(selector)
selector — CSS-селектор, DOM-элемент или массив
элементов.Примеры выбора:
cash('p'); // Все параграфы на странице
cash('#main'); // Элемент с id="main"
cash(document.querySelectorAll('.item')); // NodeList элементов
Cash поддерживает комбинированные селекторы и позволяет работать с динамически созданными элементами.
Методы для управления классами схожи с jQuery:
Пример использования:
cash('div.card').addClass('active');
cash('#header').removeClass('hidden');
cash('.menu').toggleClass('open');
Методы для атрибутов:
attr(name) — получение значения атрибутаattr(name, value) — установка атрибутаremoveAttr(name) — удаление атрибутаПример:
cash('img').attr('src', 'logo.png');
console.log(cash('img').attr('alt'));
cash('a').removeAttr('target');
Свойства DOM:
prop(name) — получение свойстваprop(name, value) — установка свойстваПример:
cash('#checkbox').prop('checked', true);
Пример:
cash('#container').html('<p>Новый контент</p>');
cash('.list').append('<li>Элемент списка</li>');
cash('.item:first').remove();
Cash предоставляет удобные методы для управления событиями:
on(event, selector, handler) — привязка событияoff(event, handler) — удаление обработчикаtrigger(event) — программная генерация событияПримеры:
cash('button').on('click', () => console.log('Нажата кнопка'));
cash('input').off('focus');
cash('#form').trigger('submit');
Поддерживаются делегирование событий через указание селектора второго параметра:
cash('#list').on('click', 'li', function() {
console.log(this.textContent);
});
Методы для измерения элементов:
Пример:
const box = cash('#box');
console.log(box.width(), box.height());
console.log(box.offset());
css(property) — получение стиляcss(property, value) — установка стиляcss({property1: value1, property2: value2}) — установка
нескольких стилей одновременноПримеры:
cash('.title').css('color', 'red');
cash('p').css({ fontSize: '16px', lineHeight: '1.5' });
Cash включает базовые возможности AJAX через метод
ajax(options):
cash.ajax({
url: '/api/data',
method: 'GET',
dataType: 'json',
success(response) { console.log(response); },
error(err) { console.error(err); }
});
Параметры:
url — адрес запросаmethod — GET, POST, PUT, DELETEdata — данные для отправкиdataType — ожидаемый формат ответа (json,
text)success — callback при успешном ответеerror — callback при ошибкеCash имеет базовые методы для анимации:
show() — показать элементhide() — скрыть элементtoggle() — переключение видимостиfadeIn(duration) / fadeOut(duration) —
плавное появление и исчезновениеslideUp(duration) / slideDown(duration) —
сворачивание и разворачиваниеПример:
cash('#modal').fadeIn(400);
cash('#modal').fadeOut(400);
Методы для фильтрации и перебора коллекции:
each(callback) — перебор элементовfilter(selector) — фильтрация по селектору или
функцииfirst() / last() — получение первого или
последнего элементаeq(index) — получение элемента по индексуfind(selector) — поиск потомковclosest(selector) — поиск ближайшего родителяПримеры:
cash('.item').each((el, i) => console.log(i, el));
const firstItem = cash('.item').first();
const parent = cash('#child').closest('.parent');
Cash позволяет писать лаконичный, чистый код, избегая громоздкости jQuery, при этом сохраняя привычный стиль манипуляций с DOM и событиями.