1

如何读取数据属性的值并检查该属性是否不存在?

例如:

var value = $(selector).data('myData');

data-myData检查属性是否丢失或不包含数据的最可靠方法是什么?如果它丢失并且我执行“value.length”,那么我会得到一个错误。

我知道我可以使用hasData(),但是如果数据在那里,我需要它,并且两次检查该值似乎效率较低。

4

3 回答 3

3

我通常只是这样做:

var value = $(selector).data('myData') || ''; 
                                 // or || 0;
                                 // or || someBackupVariable;
                                 // (just depends on what you want/need)

至少这种方式你有一个备份值,所以当你对变量进行操作时value它不会破坏它。

jsFiddle 演示

于 2012-12-18T18:34:14.320 回答
1

如何获得这样的价值:

var value = $(selector).data('myData');
if (!value) do a hasData() 
于 2012-12-18T18:34:25.527 回答
1

我不认为它效率低下,但如果你真的不想读两遍,你应该检查undefined

value = $(selector).data('myData');
if (typeof value === "undefined") {
    ...
于 2012-12-18T18:35:45.880 回答