测试缺少.data()结果

时间:2012-12-18 18:31:32

标签: javascript jquery

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

例如:

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

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

我知道我可以使用hasData()但是,如果有数据,我需要它,并且检查值两次似乎效率不高。

3 个答案:

答案 0 :(得分:3)

我通常只是这样做:

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

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

<强> jsFiddle Demo

答案 1 :(得分:1)

如何获得这样的值:

var value = $(selector).data('myData');
if (!value) do a hasData() 

答案 2 :(得分:1)

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

value = $(selector).data('myData');
if (typeof value === "undefined") {
    ...