我在一个元素上使用了html5“data”属性,我想将属性值分配给一个变量,只要它存在并且它不是空的:
var xxx = $(this).data('what') ? $(this).data('what') : 'default_value';
但它不起作用。我总是得到默认值......
答案 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';