jQuery $ .data()条件语句

时间:2011-04-28 16:10:51

标签: javascript jquery html5 jquery-data

我在一个元素上使用了html5“data”属性,我想将属性值分配给一个变量,只要它存在并且它不是空的:

var xxx = $(this).data('what') ? $(this).data('what') : 'default_value';

但它不起作用。我总是得到默认值......

3 个答案:

答案 0 :(得分:5)

使用短路更简单,更有效:

var xxx = $(this).data('what') || 'default_value';

但是假设数据存在(正如评论者指出的那样),你的代码应该仍然有效。

答案 1 :(得分:3)

看起来$(this)不是你所期望的那样。除此之外,声明看起来很好。 Demo

答案 2 :(得分:2)

根据文件:

。数据()

  

.data()方法允许我们附加   任何类型的数据到DOM中的DOM元素   圆形的安全方式   引用,因此从内存   泄漏。

<强> .attr()

  

.attr()方法获取属性   只有第一个元素的值   匹配的集合。

所以你想要的是使用 .attr()方法,如下所示:

var xxx = $(this).attr('data-what') || 'default_value';