Cash — это лёгкая библиотека для работы с DOM, аналог jQuery, но с меньшим весом и современным синтаксисом. Для использования можно подключить через npm или CDN.
Через npm:
npm install cash-dom
Подключение через ES-модули:
import $ from 'cash-dom';
Через CDN:
<script src="https://unpkg.com/cash-dom/dist/cash.min.js"></script>
После подключения $ становится основной функцией для
работы с элементами DOM.
Cash использует CSS-селекторы для получения элементов, возвращая объект, похожий на массив. Основная конструкция:
const elems = $('.my-class');
Ключевые моменты:
$('.my-class') — выбирает все элементы с классом
my-class.$('#my-id') — выбирает элемент по ID.$('div > p') — поддерживаются сложные
CSS-селекторы.Cash позволяет легко изменять текст и HTML элементов.
$('.my-class').text('Новый текст');
$('.my-class').html('<span>Обновлённый HTML</span>');
Особенности:
text() заменяет текстовое содержимое всех выбранных
элементов.html() заменяет HTML, при этом любые вложенные элементы
перезаписываются.$('.my-class').text((index, oldText) => `${oldText} ${index}`);
Для установки и получения атрибутов используется метод
attr:
// Получение значения атрибута
const value = $('img').attr('src');
// Установка значения атрибута
$('img').attr('src', 'image.jpg');
// Установка нескольких атрибутов
$('img').attr({ alt: 'Описание', title: 'Заголовок' });
Свойства элементов (checked, selected,
value) можно изменять через prop:
$('#checkbox').prop('checked', true);
Cash предоставляет удобные методы для управления CSS-классами:
$('.item').addClass('active');
$('.item').removeClass('inactive');
$('.item').toggleClass('highlighted');
Дополнительные возможности:
hasClass('active') возвращает true или
false.toggleClass('name', condition) позволяет добавить или
убрать класс в зависимости от условия.Cash упрощает работу с событиями, поддерживая методы on
и off.
$('.button').on('click', () => console.log('Нажата кнопка'));
$('.button').off('click');
Особенности:
$(document).on('click', '.dynamic-button', () => console.log('Динамическая кнопка'));
$('.input').on('focus blur', () => console.log('Фокус или потеря фокуса'));
Cash позволяет легко добавлять, удалять и перемещать элементы:
// Добавление нового элемента
$('<div>Новый блок</div>').appendTo('body');
$('body').prepend('<header>Заголовок</header>');
// Вставка элементов относительно существующих
$('.container').before('<p>Перед контейнером</p>');
$('.container').after('<p>После контейнера</p>');
// Удаление элементов
$('.remove-me').remove();
// Очистка содержимого
$('.container').empty();
Для работы с размерами элементов используются методы
width(), height(), innerWidth(),
innerHeight(), outerWidth() и
outerHeight().
const w = $('.box').width();
$('.box').height(200);
// Включая padding и border
const outer = $('.box').outerWidth(true);
Особенности:
innerWidth учитывает padding, но не border.outerWidth(true) учитывает margin.Cash позволяет обходить выбранные элементы через метод
each:
$('.item').each((index, el) => {
console.log(index, el.textContent);
});
index — порядковый номер элемента.el — DOM-элемент, а не объект Cash.Все методы Cash (кроме получения значений) возвращают объект Cash, что позволяет строить цепочки:
$('.item')
.addClass('active')
.text('Обновлённый текст')
.css('color', 'red');
Поддерживаемые цепочки:
Изменение стилей через метод css:
$('.box').css('background-color', 'blue');
$('.box').css({ width: '100px', height: '50px' });
$('.box').css('width', (i, value) => parseInt(value) + 10 + 'px');
const color = $('.box').css('background-color');
$()text(),
html()attr(),
prop()addClass(),
removeClass(), toggleClass()on(), off()append(),
prepend(), before(), after(),
remove(), empty()width(),
height(), innerWidth(),
outerWidth()each()css()Эти конструкции формируют основу работы с Cash, позволяя легко создавать, изменять и управлять DOM-элементами в современном JavaScript.