Cash — это компактная и быстрая библиотека, вдохновлённая jQuery,
предназначенная для работы с DOM и коллекциями элементов. Важной частью
её функционала является эффективная итерация по коллекциям
элементов, что позволяет выполнять операции над набором
элементов без явных циклов for или
forEach.
.each()Метод .each() используется для перебора всех элементов
коллекции. Синтаксис:
$(selector).each(function(index, element) {
// действия с element
});
Параметры:
index — порядковый номер текущего элемента в
коллекции.element — сам DOM-элемент, на котором выполняются
действия.Пример использования:
$('.item').each(function(index, element) {
element.textContent = `Элемент №${index + 1}`;
});
Особенности:
this ссылается на текущий
DOM-элемент.false из функции прекращает дальнейшую итерацию
(аналог break в цикле)..map()Метод .map() позволяет преобразовывать коллекцию,
создавая новую массивоподобную структуру на основе результатов функции
обратного вызова.
const texts = $('.item').map(function(index, element) {
return element.textContent.toUpperCase();
}).get();
Ключевые моменты:
.get()..get() преобразует результат в обычный
массив..filter()Метод .filter() создаёт новую коллекцию, содержащую
только элементы, удовлетворяющие условию функции.
const visibleItems = $('.item').filter(function(index, element) {
return element.offsetParent !== null; // проверка на видимость
});
Особенности:
this также ссылается на текущий
DOM-элемент..find()Метод .find() ищет дочерние элементы в рамках каждой
позиции коллекции. Возвращает новую коллекцию Cash.
const inputs = $('.form').find('input[type="text"]');
.not()Метод .not() исключает из коллекции элементы,
соответствующие селектору или функции.
const itemsWithoutActive = $('.item').not('.active');
.not() аналогична фильтру:$('.item').not(function(index, element) {
return element.textContent.includes('skip');
});
.first() и
.last()Эти методы выбирают соответственно первый и последний элемент коллекции:
const firstItem = $('.item').first();
const lastItem = $('.item').last();
Особенности:
Cash позволяет комбинировать методы для сложной обработки коллекций. Пример:
$('.item')
.filter('.active')
.find('input')
.each(function(index, element) {
element.value = `Активный ${index + 1}`;
});
Пошаговое объяснение:
active.input внутри этих элементов..each().this всегда ссылается на
текущий DOM-элемент внутри .each(), .map(),
.filter() и .not()..get().$('.link').attr('target', '_blank');
$('.item').filter('.highlight').css('color', 'red');
const values = $('input[type="text"]').map(function(_, el) {
return el.value.trim();
}).get();
Эта система методов делает работу с коллекциями в Cash удобной, читаемой и производительной, позволяя избегать громоздких циклов и поддерживать чистоту кода. Итерация становится контролируемой, гибкой и легко комбинируемой с другими операциями над DOM.