Cash — это лёгкая альтернатива jQuery, предоставляющая удобный API для работы с DOM, событиями и AJAX. Библиотека весит всего несколько килобайт, что делает её привлекательной для небольших проектов, где не требуется полный функционал jQuery. Она полностью совместима с современными браузерами и поддерживает большинство популярных методов манипуляции DOM.
Для работы с Cash достаточно подключить скрипт через CDN или локально:
<script src="https://cdn.jsdelivr.net/npm/cash-dom/dist/cash.min.js"></script>
После подключения доступна глобальная функция $,
аналогичная jQuery:
$(selector)
где selector может быть строкой CSS-селектора, элементом
DOM или массивом элементов.
Cash использует знакомый синтаксис CSS-селекторов для поиска элементов на странице:
// Получение всех абзацев
const paragraphs = $('p');
// Получение элемента по идентификатору
const header = $('#main-header');
// Получение элементов по классу
const buttons = $('.btn');
Возвращаемый объект — это коллекция элементов, поддерживающая цепочку вызовов методов.
Cash позволяет быстро изменять текст и HTML:
// Изменение текста
$('#title').text('Новый заголовок');
// Установка HTML
$('.container').html('<p>Новый параграф</p>');
Методы text() и html() поддерживают как
установку, так и получение содержимого:
const content = $('#title').text(); // Получение текста
// Установка атрибута
$('img').attr('src', 'image.jpg');
// Получение атрибута
const src = $('img').attr('src');
// Добавление/удаление классов
$('.menu').addClass('active');
$('.menu').removeClass('active');
$('.menu').toggleClass('open');
// Изменение стилей
$('#box').css('background-color', 'red');
Cash упрощает работу с событиями, обеспечивая удобный синтаксис и поддержку делегирования:
// Обработчик клика
$('.btn').on('click', function(event) {
console.log('Кнопка нажата');
});
// Удаление обработчика
$('.btn').off('click');
// Делегирование события
$(document).on('click', '.dynamic-btn', function() {
console.log('Динамическая кнопка нажата');
});
Методы .on() и .off() полностью заменяют
нативные addEventListener и
removeEventListener, сохраняя цепочку вызовов.
Cash предоставляет удобные методы для манипуляции классами и атрибутами:
// Проверка наличия класса
if ($('#menu').hasClass('active')) {
console.log('Меню активно');
}
// Получение/установка атрибутов
const id = $('#menu').attr('id');
$('#menu').attr('data-role', 'navigation');
// Удаление атрибута
$('#menu').removeAttr('data-role');
Cash поддерживает базовые анимации через методы show(),
hide(), toggle() и fade*():
// Показ элемента
$('#panel').show();
// Скрытие элемента с плавностью
$('#panel').hide(500);
// Переключение видимости
$('#panel').toggle();
// Плавное появление/исчезновение
$('#panel').fadeIn(400);
$('#panel').fadeOut(400);
$('#panel').fadeToggle(400);
Аргумент в миллисекундах задаёт длительность анимации. Если аргумент не указан, используется мгновенное выполнение.
Cash позволяет создавать новые элементы и вставлять их в DOM:
// Создание нового элемента
const newDiv = $('<div class="card">Содержимое карточки</div>');
// Добавление в контейнер
$('.container').append(newDiv);
// Вставка перед элементом
$('#title').before('<hr>');
// Вставка после элемента
$('#title').after('<hr>');
// Замена содержимого
$('#old-element').replaceWith('<p>Новый элемент</p>');
Методы append, prepend,
before, after и replaceWith
поддерживают как строки HTML, так и объекты Cash.
Cash предоставляет минималистичный интерфейс для AJAX через метод
$.ajax:
$.ajax({
url: 'https://api.example.com/data',
method: 'GET',
dataType: 'json',
success: function(response) {
console.log(response);
},
error: function(xhr, status, error) {
console.error(error);
}
});
Также доступны сокращённые методы $.get и
$.post:
$.get('https://api.example.com/data', function(data) {
console.log(data);
});
$.post('https://api.example.com/send', { name: 'John' }, function(response) {
console.log(response);
});
Методы each, map, filter
позволяют работать с коллекциями элементов:
// Перебор элементов
$('li').each(function(index, element) {
console.log(index, element.textContent);
});
// Фильтрация элементов
const activeItems = $('li').filter('.active');
// Создание нового массива значений
const texts = $('li').map(function() {
return $(this).text();
});
Метод map возвращает объект Cash, совместимый с цепочкой
вызовов, что упрощает дальнейшие операции.
Объекты Cash легко интегрируются с нативными методами Jav * aScript:
// Доступ к нативному элементу
const firstButton = $('.btn')[0];
// Использование нативного метода
firstButton.focus();
// Преобразование коллекции в массив
const buttonsArray = $('.btn').toArray();
Метод toArray() позволяет применять стандартные методы
массива, такие как map, filter и
forEach.
Cash полностью поддерживает цепочки методов, что упрощает запись компактного и понятного кода:
$('#menu')
.addClass('visible')
.css('opacity', '1')
.on('click', function() {
$(this).toggleClass('active');
});
Цепочки работают для всех методов, возвращающих объект Cash, обеспечивая консистентный синтаксис, аналогичный jQuery.
Cash позволяет быстро обрабатывать значения полей и отправку форм:
// Получение значения поля
const name = $('#name').val();
// Установка значения
$('#name').val('Иван');
// Сброс формы
$('#form')[0].reset();
Метод val() поддерживает как строки, так и массивы для
мультиселектов, что удобно при работе с сложными формами.
Библиотека Cash предоставляет компактный и удобный интерфейс для работы с DOM, событиями, формами и AJAX в ванильных проектах. Её лёгкость и совместимость с нативным JavaScript делают её идеальной альтернативой jQuery для небольших и средних веб-проектов.