是否有一些方法,我可以运行以下:

var data = $("#dataTable").data('timer');
var diffs = [];

for(var i = 0; i + 1 < data.length; i++) {
    diffs[i] = data[i + 1] - data[i];
}

alert(diffs.join(', '));

只有在id为#dataTable的元素上有一个名为data-timer的属性时?


当前回答

if ($("#dataTable").data('timer')) {
  ...
}

注意只有当数据属性不是空字符串或“假”值(如0或false)时,才返回true。

如果你想检查data属性是否存在,即使是空的,也要这样做:

if (typeof $("#dataTable").data('timer') !== 'undefined') {
  ...
}

其他回答

如果想要区分空值和缺失值,可以使用jQuery进行如下检查。

<div id="element" data-foo="bar" data-empty=""></div>

<script>
"foo" in $('#element').data(); // true
"empty" in $('#element').data(); // true
"other" in $('#element').data(); // false
</script>

从最初的问题你可以这样做。

if("timer" in $("#dataTable").data()) {
  // code
}
if (typeof $("#dataTable").data('timer') !== 'undefined')
{
    // your code here
}

还有:

if ($('#dataTable[data-timer]').length > 0) {
    // logic here
}
if ($("#dataTable").data('timer')) {
  ...
}

注意只有当数据属性不是空字符串或“假”值(如0或false)时,才返回true。

如果你想检查data属性是否存在,即使是空的,也要这样做:

if (typeof $("#dataTable").data('timer') !== 'undefined') {
  ...
}

你可以使用jQuery的hasData方法。

http://api.jquery.com/jQuery.hasData/

hasdata (element)的主要优点是,如果当前不存在数据对象,它不会创建数据对象并将其与元素关联。相比之下,jQuery.data(element)总是返回一个数据对象给调用者,如果之前不存在数据对象,则创建一个。

这只会检查元素上是否存在任何数据对象(或事件),它不能确认它是否有一个“timer”对象。