Библиотека Cash является лёгкой альтернативой jQuery и предназначена для работы с DOM в JavaScript. Она обеспечивает удобные методы для манипуляции элементами, событий, анимации и AJAX-запросов, сохраняя компактность и высокую производительность. Cash поддерживает цепочки вызовов, что позволяет писать лаконичный и структурированный код.
Ключевые особенности:
each, map,
filter для работы с коллекциями элементов.Cash использует синтаксис, похожий на jQuery, для выборки элементов:
const items = $('.item'); // выбирает все элементы с классом "item"
Метод возвращает объект Cash, который поддерживает цепочку вызовов:
items.addClass('active').css('color', 'red');
Для управления классами доступны следующие методы:
addClass(className) — добавляет класс элементам.removeClass(className) — удаляет класс.toggleClass(className) — переключает класс.hasClass(className) — проверяет наличие класса.$('.menu-item').addClass('highlight');
Методы attr, prop и removeAttr
позволяют работать с атрибутами и свойствами элементов:
$('#link').attr('href', 'https://example.com');
$('#checkbox').prop('checked', true);
$('#input').removeAttr('disabled');
Cash предоставляет удобный интерфейс для работы с событиями:
on(event, handler) — добавление обработчика
события.off(event, handler) — удаление обработчика.trigger(event) — программная генерация события.Пример использования:
$('.button').on('click', function(e) {
console.log('Кнопка нажата', e.target);
});
$('.button').off('click');
Для работы с делегированными событиями используется вариант с указанием селектора:
$('#list').on('click', '.item', function() {
console.log('Нажат элемент списка');
});
Методы css и animate позволяют управлять
стилями элементов:
$('.box').css('background-color', 'blue');
$('.box').css({
width: '200px',
height: '100px'
});
Метод animate поддерживает анимацию с указанием свойств,
времени и функции колбэка:
$('.box').animate({ opacity: 0.5, height: '150px' }, 500, function() {
console.log('Анимация завершена');
});
Методы добавления и удаления элементов:
append(content) — добавляет контент внутрь
элементов.prepend(content) — добавляет контент в начало
элементов.before(content) / after(content) — вставка
перед или после элементов.remove() — удаляет элементы из DOM.Пример добавления элементов:
$('#container').append('<div class="new-item">Новый элемент</div>');
Методы empty() очищают содержимое элемента:
$('#list').empty();
Cash включает методы для выполнения AJAX-запросов, аналогичные jQuery:
$.get(url, data, callback) — GET-запрос.$.post(url, data, callback) — POST-запрос.$.ajax(options) — универсальный метод с поддержкой всех
HTTP-методов и параметров.Пример GET-запроса:
$.get('/api/data', { id: 1 }, function(response) {
console.log('Ответ сервера:', response);
});
Пример POST-запроса:
$.post('/api/save', { name: 'Cash' }, function(response) {
console.log('Данные сохранены', response);
});
Универсальный $.ajax позволяет настроить заголовки,
таймаут, обработку ошибок:
$.ajax({
url: '/api/update',
method: 'PUT',
data: { status: 'active' },
success: function(res) {
console.log('Обновление успешно', res);
},
error: function(err) {
console.error('Ошибка запроса', err);
}
});
Cash позволяет использовать методы each,
map, filter для работы с коллекциями
элементов:
$('.item').each(function(index, el) {
console.log(index, el);
});
const values = $('.input').map(function(_, el) {
return el.value;
}).get();
Метод get() возвращает массив обычных DOM-элементов.
Cash оптимизирован под современные браузеры и работает быстрее на большинстве операций, благодаря использованию нативных методов DOM. Она не поддерживает устаревшие браузеры Internet Explorer, что снижает размер библиотеки и ускоряет загрузку. Основные отличия:
Cash легко сочетается с нативным JavaScript и сторонними библиотеками. Методы Cash возвращают объекты, совместимые с массивами и NodeList, что позволяет использовать стандартные методы JS:
const nodes = $('.item').get();
nodes.forEach(el => el.style.color = 'green');
$('.item')
.addClass('highlight')
.css({ color: 'red', fontWeight: 'bold' })
.on('click', function() {
$(this).toggleClass('selected');
});
$('#parent').on('click', '.child', function() {
console.log('Динамический элемент кликнут');
});
data() и
removeData():$('#item').data('id', 123);
console.log($('#item').data('id'));
$('#item').removeData('id');
Если нужно, могу подготовить раздел с практическими примерами миграции с jQuery на Cash, где будет показан пошаговый разбор замены методов и оптимизации кода. Это будет полезно для учебника в рамках главы «Автоматизация миграции».
Хотите, чтобы я это сделал?