用2种情况找到一些变量的正确方法
Correctly way to find some variable with 2 case
我想从两种不同的元素模式中找到一些变量。
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')
这将对undefined
和false
值
相关文章:
- 引用类变量中的原型方法
- 从Javascript方法返回全局变量
- 将方法从控制器注入到未使用右变量调用的指令
- 如何将javascript变量作为参数提供给asp.net方法
- 检查变量是否为字符串的简单方法
- 在javascript regexp中捕获多个变量的一种更简单的方法
- Javascript 方法看不到对象变量
- Chrome扩展:是否有一种方法可以运行JavaScript来获取页面上的内部html,并将其保存到扩展中的变量中
- 在变量中保存值的最佳方法是在应用程序关闭后使用,然后使用apachecordova在android中重新启动
- JavaScript对象范围-在对象方法中使用对象变量
- JavaScript:检查变量是否等于两个或多个值之一的简单方法
- 如何重用ajax工厂方法来设置$scoped变量
- 使用类/构造函数与变量方法时的作用域不同
- 如何在视图中呈现部分 js 或访问在应用程序/资产中的 js.erb 文件中的控制器操作中初始化的实例变量/方法
- 禁止特定变量/方法的esint规则
- 我应该以这种方式创建私有变量/方法吗?
- Javascript对象中的变量方法
- 如何用javascript从html文件中触发python中的变量/方法
- Javascript公共变量/方法
- Awesomium允许我在JS中调用/使用c++变量/方法吗?