当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


JQuery jQuery.data()用法及代码示例


存储与指定元素关联的任意数据和/或返回设置的值。

用法一

jQuery.data( element, key, value ) => Object

说明:存储与指定元素关联的任意数据。返回设置的值。

  • 添加的版本:1.2.3jQuery.data( element, key, value )

    • element
      类型:Element
      与数据关联的 DOM 元素。
    • key
      类型:String
      一个字符串,命名要设置的数据。
    • value
      类型:Anything
      新的数据值;这可以是除 undefined 之外的任何 Javascript 类型。

注意:这是一种低级方法;一个更方便的.data()也可用。

jQuery.data() 方法允许我们以一种安全的方式将任何类型的数据附加到 DOM 元素,从而避免循环引用,从而避免内存泄漏。 jQuery 确保在通过 jQuery 方法删除 DOM 元素以及用户离开页面时删除数据。我们可以为单个元素设置几个不同的值并稍后检索它们:

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

其他注意事项:

  • 请注意,此方法当前不提供cross-platform 支持在 XML 文档上设置数据,因为 Internet Explorer 不允许通过 expando 属性附加数据。
  • undefined 未被识别为数据值。 jQuery.data( el, "name", undefined ) 等调用将返回 "name" 的相应数据,因此与 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.5.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( element, key ) => Object

说明:返回元素的命名数据存储中的值,设置为jQuery.data(element, name, value),或元素的完整数据存储。

  • 添加的版本:1.2.3jQuery.data( element, key )

    • element
      类型:Element
      要查询数据的 DOM 元素。
    • key
      类型:String
      存储的数据的名称。
  • 添加的版本:1.4jQuery.data( element )

    • element
      类型:Element
      要查询数据的 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 本身使用此方法存储数据以供内部使用,例如事件处理程序,因此不要假设它仅包含您自己的代码存储的数据。

Note: 此方法当前不提供cross-platform 支持在 XML 文档上设置数据,因为 Internet Explorer 不允许通过扩展属性附加数据。

例子:

获取为元素存储的名为"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.5.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" ).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>

演示:

相关用法


注:本文由纯净天空筛选整理自jquery.com大神的英文原创作品 jQuery.data()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。