Zepto — легковесная библиотека для работы с DOM, которая во многом
повторяет подход jQuery, но с упором на компактность и скорость. Одной
из ключевых особенностей является работа с коллекциями элементов. В
Zepto коллекции создаются при помощи вызова функции $,
которая возвращает объект, содержащий набор элементов DOM.
var elems = $('div.item');
elems в данном случае является объектом Zepto,
содержащим все <div> с классом item. Все
методы, применяемые к коллекции, распространяются на каждый элемент в
наборе.
Zepto предоставляет удобные методы для перебора элементов коллекции:
this ссылается
на текущий DOM-элемент, а первым аргументом передаётся индекс
элемента.$('li').each(function(index){
console.log(index, this.textContent);
});
var texts = $('p').map(function(){
return $(this).text();
}).toArray();
Метод toArray() используется для преобразования
коллекции Zepto в стандартный массив JavaScript.
Коллекции в Zepto позволяют быстро изменять текст, HTML и атрибуты:
$('.title').text('Новый заголовок');
text(), но
работает с HTML-разметкой.$('#container').html('<span>Содержимое</span>');
$('img').attr('src', 'image.jpg');
$('a').attr({href: '#', title: 'Ссылка'});
Zepto поддерживает методы для добавления, удаления и проверки классов:
$('.item').addClass('active');
$('.item').removeClass('inactive');
$('#menu').toggleClass('open');
true
или false.Zepto позволяет добавлять, удалять и перемещать элементы в DOM через коллекции:
$('#list').append('<li>Новый элемент</li>');
prepend(content) Добавляет содержимое в начало элементов.
before(content) и after(content) Вставляют содержимое до или после каждого элемента коллекции.
remove() Удаляет все элементы коллекции из DOM.
empty() Удаляет все дочерние элементы и содержимое элементов коллекции, оставляя сами элементы на месте.
Методы для измерения и управления размерами элементов:
$('.box').width(200).height(100);
offset() Возвращает объект с координатами
top и left относительно документа.
position() Возвращает координаты относительно ближайшего родителя с позиционированием.
Коллекции в Zepto позволяют работать с событиями с помощью цепочек методов:
$('button').on('click', function(){
console.log('Кнопка нажата');
});
off(event, [handler]) Удаляет обработчик события.
trigger(event) Инициирует событие на всех элементах коллекции.
Одной из сильных сторон Zepto является возможность объединять несколько методов в цепочку. Методы, которые возвращают коллекцию, позволяют выполнять несколько действий за один вызов:
$('li')
.addClass('highlight')
.attr('data-active', 'true')
.text('Обновлено');
Каждый метод возвращает коллекцию Zepto, что упрощает запись кода и делает его более компактным.
$('li').filter('.active').css('color', 'red');
not(selector | function) Исключает элементы из коллекции.
find(selector) Возвращает потомков каждого элемента коллекции, соответствующих селектору.
$('#menu').find('li').addClass('submenu-item');
Методы eq(index), first(),
last() и slice(start, end) позволяют работать
с отдельными элементами коллекции, сохраняя все возможности методов
Zepto:
$('li').eq(0).addClass('first-item');
$('li').last().addClass('last-item');
eq() возвращает коллекцию, состоящую из одного элемента,
что удобно для последующей работы с методами библиотеки.
Коллекции в Zepto создают основу для эффективной работы с DOM, позволяя управлять группами элементов одновременно, выполнять массовые операции и писать компактный код без дублирования.