Javascript 如果存在,JQuery检索数据属性,否则获取默认值
我知道怎么做很长一段路,但有什么捷径可以做到这一点吗Javascript 如果存在,JQuery检索数据属性,否则获取默认值,javascript,jquery,Javascript,Jquery,我知道怎么做很长一段路,但有什么捷径可以做到这一点吗 var imgwidth; if ($(elment).attr('data-imgwidth') !== undefined) { // attribute exists imgwidth = $(elment).data('imgwidth'); } else { // attribute does not exist imgwidth = '640px'; //default value } 我有时用
var imgwidth;
if ($(elment).attr('data-imgwidth') !== undefined) {
// attribute exists
imgwidth = $(elment).data('imgwidth');
} else {
// attribute does not exist
imgwidth = '640px'; //default value
}
我有时用
var imgwidth = $(element).data('imgwidth') || '640px';
但我不确定这是否总是有效的。例如,如果数据属性是布尔值,则它将失败。如果您希望减少此简单计算占用的空间量,这就是您的朋友所在。然而,在大多数用例中,它牺牲了代码的可读性。因此,在尝试压缩太多时要小心 下面是一个与您需要的内容相关的示例:
// Ternary returns one value if a statement is true, and another if false;
var imgwidth= $(".container").attr('data-imgwidth')? $(elment).data('imgwidth') : "640px";
移动ATM,不能给你一个例子。但有一个建议是创建自己的jquery扩展来封装“常用”代码
$.fn.betteratr=function(){….}对于布尔值,它会失败。。。例如,我的元素的数据showtumbs=“false”,在本例中为$(元素)。数据('showtumbs')| | true将计算为true。
var imgwidth=($(元素)。数据('imgwidth')!==未定义)$(元素)。数据('imgwidth'):'640px'代码>