我知道如何做到这一点,但有任何捷径可以做到这一点
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';
但我不确定这是否一直有效。例如,如果data属性是布尔值,则失败。
答案 0 :(得分:1)
如果您希望减少这个简单计算所需的空间量,那么ternary operators成为您的朋友。但是,在大多数用例中,它会牺牲代码的可读性。所以要小心压缩太多。
这是一个与您需要的相关的示例:
// Ternary returns one value if a statement is true, and another if false;
var imgwidth= $(".container").attr('data-imgwidth')? $(elment).data('imgwidth') : "640px";
答案 1 :(得分:1)
移动ATM,无法举例说明。但有一个建议是创建自己的jquery扩展来包装你的"通常使用的"代码。
$。fn.betterAttr = function(){....}