Книга: JavaScript. Подробное руководство, 6-е издание

19.2.7. Чтение и запись данных в элементе

19.2.7. Чтение и запись данных в элементе

Библиотека jQuery определяет метод чтения/записи с именем data(), который возвращает или устанавливает данные, связанные с любым элементом документа или с объектами Document и Window. Возможность связывать данные с любыми элементами является одной из наиболее важных и мощных особенностей: она лежит в основе механизма регистрации обработчиков событий и последовательностей визуальных эффектов в библиотеке jQuery, и в определенных случаях метод data() может оказаться полезным в ваших сценариях.

Чтобы связать данные с элементами в объекте jQuery, нужно вызвать data() как метод записи, передав ему в виде двух аргументов имя и значение. Методу data() как методу записи можно также передать единственный объект, каждое свойство которого будет использоваться как пара имя/значение, связываемая с элементом или элементами в объекте jQuery. Однако обратите внимание, что, когда методу data() передается объект, свойства этого объекта будут замещать все данные, ранее связанные с элементом или элементами. В отличие от многих других методов записи, с которыми мы уже познакомились, метод data() не вызывает функцию, переданную ему. Если во втором аргументе передать методу data() функцию, она будет сохранена, как любое другое значение.

Конечно, метод data() может также использоваться в роли метода чтения. При вызове без аргументов он возвращает объект, содержащий все пары имя/значение, связанные с первым элементом в объекте jQuery. При вызове метода data() с единственным строковым аргументом он возвращает значение, связанное с этой строкой в первом элементе.

Для удаления данных из элемента или элементов можно использовать метод removeData(). (Вызов метода data() с именованным значением null или undefined фактически не удаляет данные.) Если методу removeData() передать строку, он удалит значение, связанное с этой строкой в элементе или элементах. Если вызвать метод removeData() без аргументов, он удалит все данные:

$("div").data("x", 1);           // Записать некоторые данные
S("div.nodata”).removeData("x"); // Удалить некоторые данные
var х = $('flmydiv').data("x”);  // Получить некоторые данные

Кроме того, библиотека jQuery определяет вспомогательные функции, действующие аналогично методам data() и removeData(). Таким образом, связать данные с отдельным элементом е можно с помощью метода или функции data():
$(е).data(...) // Метод
$.data(e, ...) // Функция

Механизм хранения данных в библиотеке jQuery не использует для этой цели свойства самих элементов, но добавляет одно специальное свойство ко всем элементам, имеющим связанные с ними данные. Некоторые броузеры не позволяют добавлять свойства к элементам <applet>, <object> и <embed>, поэтому библиотека jQuery просто не дает возможности связать данные с элементами этих типов.

Оглавление книги


Генерация: 1.072. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз