Cash — это лёгкая библиотека, предоставляющая функциональность, аналогичную jQuery, но с меньшим объёмом и более высокой производительностью. Для работы с ней требуется подключение скрипта к HTML-документу.
Способы подключения:
<head>
или перед закрывающим тегом </body>:<script src="https://cdn.jsdelivr.net/npm/cash-dom@8/dist/cash.min.js"></script>
npm install cash-dom
Далее в коде JavaScript выполняется импорт:
import $ from 'cash-dom';
<script src="path/to/cash.min.js"></script>
Cash оперирует объектами, аналогичными DOM-элементам, обёрнутыми в
набор функций для удобной работы. Основная функция $()
позволяет выбирать элементы документа с помощью CSS-селекторов.
Примеры:
// Выбор всех абзацев
const paragraphs = $('p');
// Выбор элемента по идентификатору
const main = $('#main');
// Выбор по классу
const buttons = $('.btn');
Возвращаемый объект поддерживает цепочки методов, что делает работу с DOM лаконичной:
$('.btn').addClass('active').text('Нажато');
Методы html() и text() позволяют получать и
изменять содержимое элементов.
html() Возвращает внутренний HTML первого элемента в наборе:
const content = $('#main').html();
console.log(content);
Можно заменить HTML у всех выбранных элементов:
$('.card').html('<p>Новый контент</p>');
text() Работает аналогично html(), но
возвращает или устанавливает только текст без тегов:
const textContent = $('.description').text();
$('.description').text('Обновлённый текст');
Методы attr() и prop() обеспечивают
управление атрибутами и свойствами DOM-элементов.
attr() Позволяет получить или установить значение атрибута:
const src = $('img').attr('src');
$('img').attr('alt', 'Описание изображения');
prop() Используется для работы с DOM-свойствами:
const isChecked = $('#checkbox').prop('checked');
$('#checkbox').prop('checked', true);
Cash предоставляет методы addClass,
removeClass, toggleClass для управления
классами элементов:
$('.menu-item').addClass('highlighted');
$('.menu-item').removeClass('inactive');
$('.menu-item').toggleClass('selected');
Методы поддерживают множественные классы через пробел:
$('#button').addClass('active primary');
Библиотека позволяет вставлять элементы и изменять структуру документа без использования низкоуровневого API:
$('#list').append('<li>Новый элемент</li>');
$('#list').prepend('<li>Первый элемент</li>');
$('.item').before('<div>Перед элементом</div>');
$('.item').after('<div>После элемента</div>');
$('.ad-banner').remove();
Cash упрощает работу с событиями через метод on():
$('#submit').on('click', function(event) {
event.preventDefault();
console.log('Форма отправлена');
});
Удаление обработчиков осуществляется методом off():
$('#submit').off('click');
Поддерживаются делегирование и множественные события:
$(document).on('mouseover mouseout', '.hoverable', () => {
console.log('Наведение мыши');
});
Методы val(), width(),
height() позволяют получать значения полей формы и размеры
элементов:
const inputValue = $('#name').val();
$('#name').val('Новое значение');
const elementWidth = $('.box').width();
const elementHeight = $('.box').height();
Метод css() управляет стилями:
$('.box').css('background-color', 'blue');
const bg = $('.box').css('background-color');
Все методы Cash поддерживают цепочку вызовов, что позволяет сокращать код и повышать его читаемость:
$('#panel')
.addClass('active')
.css('display', 'block')
.html('<p>Содержимое панели</p>');
Cash поддерживает любые CSS-селекторы:
$('ul li:first-child');
$('div > p.highlighted');
$('input[type="text"]:checked');
Возвращаемый объект ведёт себя как массив, что позволяет использовать
методы each() для итераций:
$('li').each(function(index, element) {
console.log(index, $(element).text());
});
data-*Методы data() позволяют хранить и получать
пользовательские данные:
$('.item').data('id', 123);
const id = $('.item').data('id'); // 123
Данные хранятся в памяти и автоматически синхронизируются с
атрибутами data-*.
data().Библиотека Cash объединяет удобство jQuery с лёгкостью и высокой производительностью, делая работу с HTML-интерфейсом более прямой и лаконичной.