具有return语句JavaScript的三元运算符

时间:2013-10-17 23:47:49

标签: javascript jquery ternary

如果选择下拉列表中的选项,我需要返回true或false。

这是我的代码:

var active = sort.attr('selected') ? return true : return false;

我收到第一个return意外的错误。

为什么?

5 个答案:

答案 0 :(得分:107)

您可以通过javascript中的三元运算符返回:

return sort.attr('selected') ? true : false;

答案 1 :(得分:44)

您不能将return语句分配给变量。如果您希望为active分配值truefalse,只需删除return s:

var active = sort.attr('selected') ? true : false;

或者更好:

var active = sort.prop('selected');

因为.prop始终返回truefalse,无论初始标记属性如何。

答案 2 :(得分:8)

为什么不呢?

 return sort.attr('selected');

答案 3 :(得分:1)

只需对您的代码发表评论:

> sort.attr('selected')

似乎正在使用jQuery attr方法,该方法曾尝试并猜测您想要的内容并返回属性或属性。我认为在最近的版本中它总是返回属性。

无论如何,选择属性的存在仅表示该项(选项元素?)是默认选项,它并不意味着它是当前选中的选项。为此,您需要选择属性(jQuery prop方法)。由于选择的属性是布尔值:

> sort.attr('selected') ? true : return false;

可以简单地说:

 sort.prop('selected');

或没有jQuery:

 optionElement.selected;

答案 4 :(得分:1)

来自文档:

  

<强>语法
  condition ? expr1 : expr2
  的参数
  条件(或条件)   一个计算结果为true或false的表达式    expr1,expr2
  具有任何类型值的表达式。

你应该注意Expressions with values of any typereturn xxx不是表达。

来自维基百科:

  

表达式是一个句法结构,它必须是格式良好的:允许的运算符必须在正确的位置具有正确数量的输入,组成这些输入的字符必须有效,具有明确的操作顺序,违反语法规则的符号串格式不正确,并且不是有效的数学表达式。

因此,在您的情况下,您可以使用:

return sort.attr('selected') ? true : false