Нашли ошибку или опечатку? Выделите текст и нажмите

Поменять цветовую

гамму сайта?

Поменять
Обновления сайта
и новые разделы

Рекомендовать в Google +1

Содержимое элементов

51

»» В данной статье используется исходный код для примеров. Сохраните эту страницу для тестирования приведенных ниже примеров.

До сих пор мы занимались поиском атрибутов элементов, но в jQuery предусмотрены средства, позволяющие работать также с содержимым элементов. Доступные для этого методы приведены в таблице ниже:

Методы для работы с содержимым элементов
Метод Описание
text() Получает объединенное текстовое содержимое всех элементов, содержащихся в объекте jQuery, и их потомков
text(значение) Устанавливает текстовое содержимое для всех элементов, содержащихся В объекте jQuery
html() Возвращает HTML-содержимое первого из элементов, содержащихся в объекте jQuery
html(значение) Устанавливает HTML-содержимое для всех элементов, содержащихся в объекте jQuery
text(функция), html(функция) Устанавливает текстовое и HTML-содержимое с помощью функции

С методом text() связана одна особенность: если он вызывается без аргументов, то возвращаемый им результат генерируется на основе содержимого всех выбранных элементов. В отличие от этого поведение метода html() согласуется с поведением остальных методов jQuery, и он возвращает лишь содержимое первого элемента выбранного набора, как показано в примере ниже:

$(function() {
        
    var html = $('div.dcell').html();
    console.log(html); 
	
});

В этом сценарии метод html() используется для считывания HTML-содержимого первого из элементов, соответствующих селектору div.dcell, и вывода на консоль результата, который представлен ниже. Обратите внимание на то, что HTML-дескрипторы самого элемента в возвращаемый результат не включаются:

Использование метода html()

Изменение содержимого элементов

Для изменения содержимого элементов используются методы html() и text(). В нашем примере документа для цветочного интернет-магазина сколько-нибудь значимое текстовое содержимое элементов отсутствует, поэтому в примере ниже показано лишь применение метода html() для этой цели:

$(function() {
        
    $('#row2 div.dcell').html($('div.dcell').html()); 
	
});

Этот сценарий изменяет HTML-содержимое тех принадлежащих классу dcell элементов div, которые являются потомками элемента row2. Для получения содержимого, подлежащего вставке, используется метод html(), который считывает HTML-содержимое из первого элемента div.dcell. Это приводит к тому, что каждое из изображений в нижнем ряду элементов заменяется изображением астры, как показано на рисунке:

Изменение содержимого элементов с помощью метода html()

Изменение содержимого элементов с помощью функции

Как и в случае многих других методов, передача методам html() и text() функции в качестве аргумента обеспечивает возможность динамического изменения содержимого элементов. В обоих случаях аргументами функции являются позиция элемента в объекте jQuery и текущее текстовое или HTML-содержимое. Переменная this ссылается на объект HTMLElement соответствующий элементу, а возвращаемое значение функции содержит требуемый результат.

Пример использования функции совместно с методом text() приведен ниже:

$(function() {
        
    $('label').css("border", "thick solid red").text(function(index, currentValue) {
        return "Индекс " + index;
    });
	
});

В этом сценарии текстовое содержимое элементов label изменяется в зависимости от значения аргумента index, указывающего позицию элемента в выбранном наборе (для заключения изменяемых элементов в рамку используется метод css()). Результат представлен на рисунке:

Изменение текстового содержимого элементов с помощью функции
Пройди тесты