Javascript 测试是否缺少.data()结果

Javascript 测试是否缺少.data()结果,javascript,jquery,Javascript,Jquery,如何读取数据属性的值并检查该属性是否不存在 例如: var value = $(selector).data('myData'); 检查data myData属性是否丢失或不包含数据的最可靠方法是什么?如果它丢失了,并且我使用了'value.length',那么我将得到一个错误 我知道我可以使用hasData(),但是,如果数据在那里,我需要它,而且两次检查值似乎效率较低。我通常只执行以下操作: var value = $(selector).data('myData') || '';

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

例如:

var value = $(selector).data('myData');
检查
data myData
属性是否丢失或不包含数据的最可靠方法是什么?如果它丢失了,并且我使用了'value.length',那么我将得到一个错误

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

我通常只执行以下操作:

var value = $(selector).data('myData') || ''; 
                                 // or || 0;
                                 // or || someBackupVariable;
                                 // (just depends on what you want/need)
至少通过这种方式,您有一个备份值,因此当您对变量
值执行操作时,它不会破坏它

我通常只做:

var value = $(selector).data('myData') || ''; 
                                 // or || 0;
                                 // or || someBackupVariable;
                                 // (just depends on what you want/need)
至少通过这种方式,您有一个备份值,因此当您对变量
值执行操作时,它不会破坏它


这样获取值怎么样:

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

这样获取值怎么样:

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

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

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

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

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

我只想用它的真实价值
if(value){alert(“它有一个值!”)}
唯一的缺点是,如果数据包含错误值,if将失败。这可以通过一个简单的
==
比较来解决,这个比较基于它应该包含的数据。我只需要使用它的真实值
if(value){alert(“它有一个值!”)}
唯一的缺点是,如果数据包含错误值,if将失败。这可以通过一个简单的
==
比较来解决。FWIW,对于
false
0
值,此方法失败:。因此你的答案不能被认为是正确的。这就是为什么
|
部分很重要的原因,因为你需要知道你想要什么作为备份。在
false/0/'
的情况下,将其中任何一个作为默认值都可以,在这种情况下,false将使默认值变为false<代码>变量值=$(“#测试”).data('mydata')| | false也尝试将其更改为
true
@VisioN,除非该数据值永远不会包含这样的值,或者如果这样的值在逻辑中无论如何都意味着false。FWIW,对于
false
0
值,此方法失败。
值:。因此你的答案不能被认为是正确的。这就是为什么
|
部分很重要的原因,因为你需要知道你想要什么作为备份。在
false/0/'
的情况下,将其中任何一个作为默认值都可以,在这种情况下,false将使默认值变为false<代码>变量值=$(“#测试”).data('mydata')| | false也尝试将其更改为
true
@除非数据值永远不会包含这样一个值,或者如果这样一个值在逻辑中无论如何都意味着false,否则VisioN。