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; 
}; 

,但它只是返回undefined - 我究竟做錯了什麼?

+3

你忘了'return'。 – JJJ

+2

Toooooooooo本地化 – lifetimes

+1

這是可讀性較差 –

回答

1

我會利用運營商短路:

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

如果this.is('input:text')false,第二部分將不再需要進行評估,如false && any booleanfalse不管其他布爾的價值。它的行爲就像你的if聲明。

+0

爲什麼downvote? – Blender

+0

+1,這是最好的解決方案。我只是匆匆通過我的答案:P – NINCOMPOOP

+0

喜歡這個 - 今天剛學到了新東西 - 謝謝 –

2
$.fn.inputIsEmpty = function() { 
    return (this.is('input:text') ? ($.trim($(this).val()).length == 0) : false); 
}; 
+0

真棒 - 這個作品 - 所以這是返回關鍵字去的地方 –

相關問題