返回值:BooleanjQuery.hasData(element)
判断一个元素是否含有 jQuery data。
-
1.5 新增jQuery.hasData(element)
element (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>