Zepto.js предоставляет компактный и гибкий набор методов для работы с
DOM, ориентированный на выборку элементов, манипуляции с ними и
обработку событий. Основной принцип работы Zepto — цепочка методов и
использование универсального селектора $(). Ниже
представлен детальный разбор методов выборки и фильтрации элементов.
$()$() — функция, возвращающая объект Zepto, содержащий
коллекцию элементов DOM, соответствующих селектору.
Синтаксис:
var elements = $(selector);
.each(), .css(), .attr() и
др.).Примеры:
var divs = $('div'); // Выбор всех <div>
var header = $('#header'); // Выбор элемента с id="header"
var items = $('.item'); // Выбор всех элементов с классом "item"
Если передан HTML-код, создаётся новый элемент:
var newDiv = $('<div class="new"></div>');
Методы фильтрации позволяют сужать или изменять набор элементов после первоначального выбора.
.filter(selector|function) —
возвращает только те элементы, которые соответствуют селектору или
условию функции.var visibleItems = $('.item').filter(':visible');
var firstItem = $('.item').filter(function(index, elem) {
return index === 0;
});
.not(selector|function|element) —
исключает элементы из набора, соответствующие селектору или условию
функции.var nonHiddenItems = $('.item').not('.hidden');
.has(selector) — возвращает элементы,
которые содержат хотя бы один дочерний элемент, соответствующий
селектору.var parentsWithImages = $('div').has('img');
.is(selector|function|element) —
проверяет, соответствует ли хотя бы один элемент набору условию.if ($('#header').is(':visible')) { ... }
Zepto предоставляет методы для перемещения по дереву DOM относительно текущего набора элементов.
.children(selector) — выбирает прямых
потомков элементов набора, фильтруя по селектору при необходимости.var children = $('#menu').children('li');
.find(selector) — ищет все потомки
элементов, соответствующие селектору, на любом уровне вложенности.var links = $('#menu').find('a');
.parent() — возвращает
непосредственных родителей элементов набора.var parentDiv = $('.item').parent();
.parents(selector) — возвращает всех
предков элементов, соответствующих селектору.var containers = $('.item').parents('.container');
.closest(selector) — выбирает
ближайшего предка, соответствующего селектору, включая сам элемент, если
он подходит.var closestForm = $(this).closest('form');
.siblings(selector) — возвращает все
элементы на одном уровне вложенности с текущим элементом, исключая его
самого, с возможностью фильтрации.var siblings = $('#item2').siblings('.active');
.next() / .prev() —
выбирают следующий или предыдущий соседний элемент соответственно.var nextItem = $('.item.active').next();
var prevItem = $('.item.active').prev();
.nextAll() / .prevAll() —
возвращают всех последующих или предыдущих соседей.var nextItems = $('#start').nextAll('li');
Методы позволяют выбирать элементы, исходя из их текста или HTML-содержимого.
.contains(text) — возвращает элементы,
содержащие указанную строку текста.var itemsWithHello = $('p').filter(function() {
return $(this).text().indexOf('Hello') !== -1;
});
.has(selector) — как упоминалось
ранее, ищет элементы, содержащие определённые потомки..eq(index) — выбирает элемент по
индексу (0 — первый).var secondItem = $('.item').eq(1);
.first() / .last() —
выбирают первый или последний элемент в наборе.var firstItem = $('.item').first();
var lastItem = $('.item').last();
.index() — возвращает индекс элемента
относительно его родителя или позиции в наборе.var position = $('.item.active').index();
.add(selector|elements) — добавляет
элементы к текущему набору.var allItems = $('.item').add('#specialItem');
.andSelf() — возвращает текущий
набор элементов вместе с предыдущим результатом цепочки (устаревающий
метод, аналог .addBack() в jQuery).
.slice(start, end) — возвращает
часть набора элементов по индексам.
var middleItems = $('.item').slice(1, 4);
:first, :last, :nth-child().Полный контроль над выборкой элементов в Zepto обеспечивается
комбинацией базового селектора $() и цепочки методов
фильтрации и навигации. Понимание этих инструментов позволяет эффективно
управлять DOM без лишнего кода и зависимостей.