JavaScript:如果声明在Array声明中

时间:2013-06-03 17:09:30

标签: javascript jquery conditional-operator

是否可以在数组声明中添加if语句?

代码:

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

浏览器错误:未捕获的SyntaxError:意外的令牌if。

我也试过了:

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

浏览器错误:未捕获的SyntaxError:意外的令牌!

修改

@bažmegakapa回答了代码无错误

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

这不起作用:

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

浏览器显示此错误:未捕获TypeError:对象[object Object]没有方法'checked'

问候!

2 个答案:

答案 0 :(得分:4)

您需要的是ternary or conditional operator

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

但是,对同一元素两次查询DOM并不是一个好主意。事先将生成的jQuery对象保存到变量中并重用它:

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

我不知道.checked()是什么,也许你的意思是.is(':checked')

Some fiddle demo to play with

答案 1 :(得分:4)

尝试使用javascript三元运算符,记录为here

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