2013-06-03 41 views
2

是否可以在數組聲明中放入if語句?JavaScript:如果在數組聲明上聲明

代碼:

dayOfWeek = [if($('#sunday').checked()){$('#sunday').val()}]; 

Browser error: Uncaught SyntaxError: Unexpected token if.

我嘗試過:

$('#domingo').checked() ! $('#domingo').val() : 0 

Browser error: Uncaught SyntaxError: Unexpected token !

編輯

正如@bažmegakapa回答代碼的作品,並沒有錯誤是:

diasSemana = new Array($domi.is(':checked') ? $domi.val() : null, $lun.is(':checked') ? $lun.val() : null); 

這不起作用:

$('#domingo').checked() ? $('#domingo').val() : 0 

瀏覽器顯示此錯誤:遺漏的類型錯誤:對象的翻譯:有沒有方法「檢查」

問候!

+0

使用'[]'代替'新陣列()'。 – kapa

回答

4

你需要什麼叫ternary or conditional operator

$('#domingo').checked() ? $('#domingo').val() : 0 

然而,這是不是一個好主意來查詢DOM兩次相同的元素。保存生成的jQuery對象到一個變量事先和重用:

var $domi = $('#domingo'); 
dayOfWeek = [$domi.checked() ? $domi.val() : 0]; 

我不知道什麼是.checked(),也許你的意思​​。

Some fiddle demo to play with

+0

偉大的答案!第一種方法告訴我一個錯誤,但第二種方法很好。問候 – eyyo

+1

@eyyo是的,錯誤是由於'.checked()'函數不存在:)。 – kapa

4

嘗試使用JavaScript三元運算符,記錄here

$('#domingo').checked() ? $('#domingo').val() : 0 
+0

此代碼向我顯示此錯誤:Uncaught TypeError:Object [object Object] has no''checked'。不管怎麼說,還是要謝謝你 – eyyo