我想从2种不同的元素模式中找到一些变量。
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);
}
我只想从attr data-someting="mydata"
如果找不到data-someting="mydata"
,请找到data-another
然后做行动......
我做得对吗?或另一种正确的方法做得更好?
关于Try Catch
?
答案 0 :(得分:1)
有些浏览器会有undefined
,有些浏览器会返回false
。所以,这是一个更强大的版本:
if (typeof something === 'undefined' || something === false) {
// try another attribute
} else {
// do your stuff
}
更新
嗯,记入the doc:
从jQuery 1.6开始,.attr()方法为属性返回
undefined
没有设定。
所以,他们可能是从1.6开始明确地确保这一点,而我关于false
的信息已经过时了。在这种情况下,您自己的代码是完全正确的。
答案 1 :(得分:1)
您可以/应该使用$ .data();
访问数据属性e.g
var something = $('.class').data('something');
答案 2 :(得分:1)
var something = $('.class').attr('data-something') || $('.class').attr('data-another')
这适用于undefined
和false
值