检查数据属性是否有值

问题描述:

我对jquery很新。 我想检查页面加载,如果数据属性有一个值或是空的。 这里是我的html检查数据属性是否有值

data-tablet="img/xl.jpg" 

我要如何检查是否有一个路径设置还是空的。 这里是我的js

if ($('#myImg').data('tablet')=null) { 
alert('Path not Set'); 
}; 

但它给我一个错误。 可以请你告诉我如何解决它。 谢谢。

+6

的“类型”'='是赋值,''==是平等和''===是身份 – blgt 2014-11-24 13:45:05

+1

由于@blgt说,这很可能是一个问题与你的语法。如果您在问题中指定了您实际看到的错误,那将会很有用。 – 2014-11-24 13:45:54

+0

可能重复[不能使多个如果条件在JavaScript?](http://*.com/questions/6727601/cant-make-multiple-if-conditions-in-javascript) – 2014-11-24 14:08:56

正如评论中指出的那样,您缺少一个等号,因此您没有进行比较。第二个问题是,如果没有数据属性,则它是undefined,而不是null

if ($('#myImg').data('tablet')===undefined) { 

你可以使用它。

if (!$('#myImg').data('tablet')) { 
    alert('Path not Set'); 
}; 

在Javascript中每个对象转换为一个布尔值,所以如果它为空或空字符串,它会是假的,否则这将是真实的。

+0

不工作。如果我省略数据attrabute我如何检查它是否存在? – 2014-11-24 13:46:51

+1

如果数据属性不存在,那么JQuery数据调用将返回undefined,如果该属性存在但它是空白的,那么JQuery将返回一个空字符串。这两个评估为false,因此开头的感叹号表示采取与此相反的情况,这是事实,因此如果data-tablet属性为空或不存在,您将收到警报。 – Shriike 2014-11-24 13:50:46

您可以通过在jquery中使用以下代码来检查数据属性是否有数据或存在。

在一开始,有typeof。这个方便的操作为您提供了一个JavaScript值

if(typeof $('#myImg').data('tablet') != 'undefined') { 
    // data exist 
} else { 
    // data not exist or undefined 
}