jQuery.hasData()


jQuery.hasData( element )返回: Boolean

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

  • 添加的版本: 1.5jQuery.hasData( element )

    • element
      类型: Element
      一个用于进行检查数据的DOM元素。

jQuery.hasData()方法提供了一种方法来确定一个元素是否有任何数据,这些数据是使用jQuery.data()设置的。如果一个元素没有数据(没有在所有数据对象或数据对象是空的),该方法返回false ;否则返回true

jQuery.hasData(element) 的主要优点是它并不创建 data 对象。如果元素上没有 data 对象,那么该方法也不会与元素上的 data 对象关联。相反,jQuery.data(element)总是向调用者返回一个 data 对象,即使该元素上不含有 data 对象,它也会创建一个。

请注意,jQuery的事件系统是使用jQuery数据 存储事件处理程序的。 因此,使用.on(), .bind(), .live(), .delegate(),或一个速记事件方法 绑定事件到一个元素上的时候,也会在那个元素上关联一个 data 对象。

例子:

元素上设置数据,看到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
<!DOCTYPE html>
<html>
<head>
<script src="https://code.jquery.com/jquery-latest.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>

Demo: