返回值:BooleanjQuery.hasData(element)

判断一个元素是否含有 jQuery data。

jQuery.hasData() 方法用于检查某元素是否含有 jQuery data,该 jQuery data 是使用 jQuery.data() 进行赋值的。如果某元素上没有关联任何 jQuery data(即,根本没有 data 对象,或 data 对象为空),该方法将返回 false; 否则返回 true

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

注意,jQuery 的事件系统使用了 jQuery data API 来存储事件。因此,当使用 .on(), .bind(), .live(), .delegate() 或者使用速记的事件名为元素绑定事件时,也会在那个元素上关联一个 data 对象。

示例:

为一个元素设置 data,并使用 hasData 查看结果。

<!DOCTYPE html>
<html>
<head>
<script src="jquery.min.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>

演示: