首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >有没有办法可以检查数据属性是否存在?

有没有办法可以检查数据属性是否存在?
EN

Stack Overflow用户
提问于 2012-08-28 22:10:00
回答 15查看 279.6K关注 0票数 203

有没有什么方法可以让我运行以下代码:

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的元素上有一个名为-timer的属性,那么是否只有

EN

回答 15

Stack Overflow用户

回答已采纳

发布于 2012-08-28 22:12:34

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

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

如果要检查数据属性是否存在,即使是空的,也要执行以下操作:

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

Stack Overflow用户

发布于 2012-08-28 22:11:34

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

Stack Overflow用户

发布于 2014-04-08 22:21:23

为了提供与上面不同的答案,您可以使用Object.hasOwnProperty(...)检查它,如下所示:

 if( $("#dataTable").data().hasOwnProperty("timer") ){
     // the data-time property exists, now do you business! .....
 }

或者,如果您有多个要迭代的数据元素,则可以对.data()对象进行变量设置,然后像这样迭代它:

 var objData = $("#dataTable").data();
 for ( data in objData ){
      if( data == 'timer' ){
            //...do the do
      }
 }

并不是说这个解决方案比这里的任何其他解决方案都要好,但至少它是另一种方法……

票数 38
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12161132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档