jQuery.hasData()

jQuery.hasData( element )返回类型:Boolean

描述:确定一个元素是否具有任何jQuery数据与它相关联。

jQuery.hasData()方法提供了一种方式,确定元素当前是否具有任何值是利用jQuery.data()设置的。如果没有任何数据关联到一个元素,此方法返回false;否则它返回true

jQuery.hasData(element)的主要优点是如果数据对象目前不存在的话,它并不创建数据对象并把数据对象关联到元素。相较之下,jQuery.data(element)始终向调用者返回一个数据对象,如果先前不存在数据对象就创建一个对象。

请注意jQuery的事件系统使用jQuery数据API来存储事件处理函数。因此,使用.on().bind().live().delegate()方法或它们的一种简写方法,把一个事件绑定到一个元素,也会把一个数据对象关联到该元素。

示例:

在元素上设置数据,并查看hasData的结果。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery.hasData demo</title>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<p>Results: </p>
<script>
var $p = jQuery( "p" ), p = $p[ 0 ];
$p.append( jQuery.hasData( p ) + " " ); // false
$.data( p, "testing", 123 );
$p.append( jQuery.hasData( p ) + " " ); // true
$.removeData( p, "testing" );
$p.append( jQuery.hasData( p ) + " " ); // false
$p.on( "click", function() {} );
$p.append( jQuery.hasData( p ) + " " ); // true
$p.off( "click" );
$p.append( jQuery.hasData( p ) + " " ); // false
</script>
</body>
</html>

演示: