这是一个小的小jquery插件,它检查传入的元素是否为输入元素,如果它是空的:
$.fn.inputIsEmpty = function() {
if (!this.is('input:text')) {
return false;
} else {
return $.trim($(this).val()).length == 0;
}
};
以上逻辑有效。所以我试着把它变成一个甜蜜的三元表达式:
$.fn.inputIsEmpty = function() {
this.is('input:text') ? $.trim($(this).val()).length == 0 : false;
};
但它只是返回undefined - 我做错了什么?
答案 0 :(得分:2)
$.fn.inputIsEmpty = function() {
return (this.is('input:text') ? ($.trim($(this).val()).length == 0) : false);
};
答案 1 :(得分:1)
我会利用操作员短路:
return this.is('input:text') && $.trim(this.val()).length === 0;
如果this.is('input:text')
为false
,则无需评估第二部分,因为false && any boolean
将为false
,无论其他布尔值如何。它就像你的if
声明一样。