Spec-Zone.ru › jQuery

jQuery.data()

Хранение произвольных данных, связанных со указанным элементом, и/или возврат установленного значения.

Содержание:

  • jQuery.data( элемент, ключ, значение )
    • jQuery.data( элемент, ключ, значение )
  • jQuery.data( элемент, ключ )
    • jQuery.data( элемент, ключ )
    • jQuery.data( элемент )

jQuery.data( элемент, ключ, значение )Возвращает: Объект

Описание: Хранение произвольных данных, связанных с указанным элементом. Возвращает установленное значение.

  • версия добавлена: 1.2.3jQuery.data( элемент, ключ, значение )

    • элемент
      Тип: Элемент
      Элемент DOM, который необходимо связать с данными.
    • ключ
      Тип: Строка
      Строка, определяющая имя данных для установки.
    • значение
      Тип: Любой тип
      Новое значение данных; это может быть любой тип Javascript, кроме undefined.

Примечание: Это метод низкого уровня; более удобный .data() также доступен.

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

jQuery.data( document.body, "foo", 52 );
jQuery.data( document.body, "bar", "test" );

Дополнительные заметки:

  • Обратите внимание, что этот метод в настоящее время не поддерживает кросс-платформенную установку данных для XML-документов, так как Internet Explorer не позволяет прикреплять данные через свойства expando.
  • undefined не распознается как значение данных. Вызовы, такие как jQuery.data( el, "name", undefined ) будут возвращать соответствующие данные для "имя", и поэтому эквивалентны jQuery.data( el, "name" ).

Пример:

Хранение и получение значения из элемента div.

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>jQuery.data demo</title>
  <style>
  div {
    color: blue;
  }
  span {
    color: red;
  }
  </style>
  <script src="https://code.jquery.com/jquery-3.7.0.js"></script>
</head>
<body>
 
<div>
  The values stored were
  <span></span>
  and
  <span></span>
</div>
 
<script>
var div = $( "div" )[ 0 ];
jQuery.data( div, "test", {
  first: 16,
  last: "pizza!"
});
$( "span" ).first().text( jQuery.data( div, "test" ).first );
$( "span" ).last().text( jQuery.data( div, "test" ).last );
</script>
 
</body>
</html>

Демо:

jQuery.data( элемент, ключ )Возвращает: Объект

Описание: Возвращает значение в хранилище данных с заданным именем для элемента, как установленное jQuery.data(element, name, value), или полное хранилище данных для элемента.

  • версия добавлена: 1.2.3jQuery.data( элемент, ключ )

    • элемент
      Тип: Элемент
      Элемент DOM, который необходимо запросить для данных.
    • ключ
      Тип: Строка
      Имя хранимых данных.
  • версия добавлена: 1.4jQuery.data( элемент )

    • элемент
      Тип: Элемент
      Элемент DOM, который необходимо запросить для данных.

Примечание: Это метод низкого уровня; более удобный .data() также доступен.

О атрибутах HTML5 data-* : Этот метод низкого уровня НЕ извлекает атрибуты data-* , если их не извлек более удобный метод .data().

Метод jQuery.data() позволяет прикреплять данные любого типа к элементам DOM таким образом, что избежать циклических ссылок и, следовательно, утечек памяти. Мы можем получить несколько различных значений для одного элемента по одному или как набор:

alert( jQuery.data( document.body, "foo" ) );
alert( jQuery.data( document.body ) );

Вышеприведенные строки выводят значения данных, которые были установлены на элементе body. Если на этом элементе ничего не было установлено, возвращается пустая строка.

Вызов jQuery.data( element ) получает все сопоставленные с элементом значения в виде JavaScript-объекта. Обратите внимание, что сам jQuery использует этот метод для хранения данных для внутренних целей, например, обработчиков событий, поэтому не предполагайте, что он содержит только данные, сохранённые вашим собственным кодом.

Примечание: этот метод в настоящее время не обеспечивает кросс-платформенную поддержку установки данных для XML-документов, так как Internet Explorer не позволяет прикреплять данные через свойства expando.

Пример:

Получение данных с именем "blah", сохранённых для элемента.

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>jQuery.data demo</title>
  <style>
  div {
    margin: 5px;
    background: yellow;
  }
  button {
    margin: 5px;
    font-size: 14px;
  }
  p {
    margin: 5px;
    color: blue;
  }
  span {
    color: red;
  }
  </style>
  <script src="https://code.jquery.com/jquery-3.7.0.js"></script>
</head>
<body>
 
<div>A div</div>
<button>Get "blah" from the div</button>
<button>Set "blah" to "hello"</button>
<button>Set "blah" to 86</button>
<button>Remove "blah" from the div</button>
<p>The "blah" value of this div is <span>?</span></p>
 
<script>
$( "button" ).on( "click", function() {
  var value,
    div = $( "div" )[ 0 ];
  switch ( $( "button" ).index( this ) ) {
  case 0 :
    value = jQuery.data( div, "blah" );
    break;
  case 1 :
    jQuery.data( div, "blah", "hello" );
    value = "Stored!";
    break;
  case 2 :
    jQuery.data( div, "blah", 86 );
    value = "Stored!";
    break;
  case 3 :
    jQuery.removeData( div, "blah" );
    value = "Removed!";
    break;
  }
  $( "span" ).text( "" + value );
} );
</script>
 
</body>
</html>

Демо:

© The jQuery Foundation and other contributors
Licensed under the MIT License.
https://api.jquery.com/jQuery.data

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API