0

这是一个小的 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;
};

但它只是返回未定义 - 我做错了什么?

4

2 回答 2

2
$.fn.inputIsEmpty = function() {
   return (this.is('input:text') ? ($.trim($(this).val()).length == 0) : false);
};
于 2013-06-18T17:05:21.137 回答
1

我会利用运营商短路:

return this.is('input:text') && $.trim(this.val()).length === 0;

如果this.is('input:text')false,则不需要评估第二部分,因为false && any boolean无论false其他布尔值如何。它就像你的if陈述一样。

于 2013-06-18T17:06:04.313 回答