【问题标题】:JavaScript: If statement on Array declarationJavaScript:关于数组声明的 If 语句
【发布时间】:2013-05-29 22:06:45
【问题描述】:

是否可以在数组声明中放置 if 语句?

代码:

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

浏览器错误:Uncaught SyntaxError: Unexpected token 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

浏览器显示此错误:Uncaught TypeError: Object [object Object] has no method 'checked'

问候!

【问题讨论】:

  • 使用[] 而不是new Array()

标签: javascript jquery conditional-operator


【解决方案1】:

你需要的是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

【讨论】:

  • 很好的答案!第一种方法向我显示了一个错误,但第二种方法很好。问候
  • @eyyo 是的,错误是由于 .checked() 函数不存在:)。
【解决方案2】:

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

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

【讨论】:

  • 此代码向我显示此错误:未捕获的类型错误:对象 [对象对象] 没有“检查”方法。还是谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-04
  • 2014-05-12
  • 2012-04-21
  • 2016-05-27
  • 2014-04-30
  • 1970-01-01
  • 2015-05-21
相关资源
最近更新 更多