2015-09-08 65 views
-1
var countChecked = $('.member_checkbox:checked').length; 
$('.email-btn').text('Email ' + countChecked + 'member' + countChecked > 1 ? 's'); 

我的條件式短手在上面出現了什麼問題?我想要的邏輯是添加's',如果計數超過1的字符串。有條件的短手不起作用?

+0

沒有「有條件的短手」這樣的事情。它是三元運算符,它需要**三個**操作數,因此是「三元」。 – meagar

+0

'...> 1? 's':''',但是仍然會把零加起來,所以你想'...!= 1?''''''' – dandavis

回答

0

條件(三元)運算符是唯一一個需要三個操作數的JavaScript運算符。該運算符經常用作if語句的快捷方式。

您沒有使用正確的語法。

語法

condition ? expr1 : expr2 

你已經錯過了conditional/ternary operator的其他部分。

$('.email-btn').text('Email ' + countChecked + 'member' + (countChecked > 1 ? 's' : '')); 
//              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 

此外,將條件部分包裹在圓括號內。

0

條件短手的語法是
條件?表達式1:表達式2

在你的表達,
條件是$( '電子郵件BTN ')文本(' 電子郵件' + countChecked + '成員' + countChecked> 1
Expr的1是'S'
Expr的2沒有給出

此外,
什麼的「的意思,它被分配到什麼?

+0

「s」是一個字符串,添加到「member」使它成爲「成員」 –

0
var countChecked = $('.member_checkbox:checked').length; 
$('.email-btn').text('Email ' + countChecked + 'member' + ((countChecked > 1) ? 's' : '')); 

條件語句需要放在括號中,如果你不想在這種情況下追加任何東西,只要追加''就可以提供else部分。