Zepto.js — лёгкая библиотека, создаваемая как упрощённая версия jQuery, ориентированная на мобильные устройства. Несмотря на компактность, она предоставляет широкий набор инструментов для работы с DOM, включая обработку текстового содержимого элементов и манипуляцию строками.
Метод text() используется для получения или изменения
текстового содержимого выбранных элементов.
// Получение текста первого элемента
var content = $('p').first().text();
// Установка нового текста для всех элементов <p>
$('p').text('Новый текст для всех параграфов');
Ключевой момент: при вызове без аргументов метод возвращает только текст первого элемента, а при передаче строки — обновляет текст всех выбранных элементов.
Метод html() позволяет работать с HTML-содержимым
элементов. Это важно, когда необходимо не просто изменить текст, а
вставить разметку.
// Получение HTML
var htmlContent = $('#container').html();
// Установка HTML
$('#container').html('<span class="highlight">Выделенный текст</span>');
Отличие от text() заключается в том, что
html() возвращает или устанавливает полное
HTML-содержимое, включая теги, а не только текст.
Строки часто хранятся в атрибутах элементов. Методы
attr() и removeAttr() обеспечивают работу с
ними.
// Получение значения атрибута
var linkHref = $('a#myLink').attr('href');
// Установка атрибута
$('a#myLink').attr('title', 'Ссылка на сайт');
// Удаление атрибута
$('a#myLink').removeAttr('title');
Важно помнить, что значение атрибута всегда возвращается как строка.
Для текстовых полей форм используется метод val(),
который напрямую взаимодействует со строками внутри элементов
<input>, <textarea> и
<select>.
// Получение значения поля ввода
var inputValue = $('#username').val();
// Установка нового значения
$('#username').val('новое имя пользователя');
Если поле пустое, метод возвращает пустую строку. Перед установкой
значения можно использовать методы обработки строк, такие как
trim().
Zepto поддерживает цепочки методов, что позволяет комбинировать манипуляции с DOM и обработку текста.
$('#message')
.text('Привет, мир!')
.css('color', 'blue')
.fadeIn(300);
При необходимости строку можно модифицировать до вставки в элемент:
var name = 'Алексей';
$('#greeting').text('Здравствуйте, ' + name.toUpperCase() + '!');
Для поиска элементов по их содержимому используется метод
filter(), который может принимать функцию с проверкой
строки.
$('li').filter(function() {
return $(this).text().indexOf('важно') !== -1;
}).css('font-weight', 'bold');
Метод возвращает новый набор элементов, содержащих указанную подстроку. Это удобно для динамической фильтрации списков.
Встроенные методы JavaScript для работы со строками
(replace, match, split) можно
напрямую применять к содержимому, полученному через
text().
// Замена всех цифр на символ #
$('p.numbers').text(function(i, oldText) {
return oldText.replace(/\d/g, '#');
});
Аргумент функции при использовании формы
text(function(index, oldText){}) позволяет безопасно
работать с текущим содержимым каждого элемента.
Методы append(), prepend(),
before() и after() позволяют добавлять новые
строки в DOM с сохранением HTML-структуры.
// Добавление текста в конец контейнера
$('#log').append('<p>Новая запись</p>');
// Добавление текста в начало контейнера
$('#log').prepend('<p>Первая запись</p>');
При этом важно учитывать, что добавленный текст может содержать HTML,
который будет интерпретирован, если используется append()
или prepend(). Для добавления только текста безопаснее
использовать text().
Иногда необходимо извлечь данные в виде строки для дальнейшей обработки:
var contentArray = $('ul li').map(function() {
return $(this).text();
}).get(); // Возвращает массив строк
Метод map() вместе с get() позволяет
работать с содержимым как с обычным массивом строк, что удобно для
фильтрации, сортировки и других операций.
При манипуляциях важно различать undefined и пустую строку. Методы Zepto всегда возвращают строку, даже если элемент пуст:
$('#empty').text(); // Возвращает ''
$('#nonexistent').text(); // Возвращает undefined
Это отличие критично при условных проверках или динамическом формировании контента.
Все данные, полученные через Zepto как строки, можно обрабатывать стандартными методами Jav * aScript:
toUpperCase() / toLowerCase() — изменение
регистраtrim() — удаление пробеловsplit() / join() — работа с массивамиsubstring() / slice() — извлечение
подстрокПример комбинирования:
var sentence = $('#sentence').text().trim();
var words = sentence.split(' ').map(function(word) {
return word.toUpperCase();
});
$('#sentence').text(words.join(' '));
Такой подход позволяет использовать Zepto как мост между DOM и полноценной строковой обработкой на стороне клиента.