用2种情况找到一些变量的正确方法

Correctly way to find some variable with 2 case

本文关键字:变量 方法 2种 情况      更新时间:2023-09-26

我想从两种不同的元素模式中找到一些变量。

var something = $('.class').attr('data-something');
if(typeof something === 'undefined') {
    var something = $('.class').attr('data-another'); 
}
if(typeof something != 'undefined') {
    // do action...
    console.log(something); 
}

我只想从属性data-someting="mydata" 中获取一些数据

如果未找到data-someting="mydata",则查找数据形式data-another

然后采取行动。。。。

我做得对吗?还是另一种做得更好的正确方法?

Try Catch怎么样?

有些浏览器会将其设为undefined,而有些浏览器会返回false。因此,这里有一个更健壮的版本:

if (typeof something === 'undefined' || something === false) {
    // try another attribute
} else {
    // do your stuff
}

更新:

嗯,根据文件:

从jQuery 1.6开始,.attr((方法返回属性的undefined尚未设置。

因此,很可能,从1.6开始,他们自己就明确地确保了这一点,而我关于false的信息已经过时了。在这种情况下,您自己的代码是完全正确的。

您可以/应该使用$.data((访问数据属性;

例如

var something = $('.class').data('something');
 var something = $('.class').attr('data-something') || $('.class').attr('data-another')

这将对undefinedfalse

都适用