如果选择下拉列表中的选项,我需要返回true或false。
这是我的代码:
var active = sort.attr('selected') ? return true : return false;
我收到第一个return
意外的错误。
为什么?
答案 0 :(得分:107)
您可以通过javascript中的三元运算符返回:
return sort.attr('selected') ? true : false;
答案 1 :(得分:44)
您不能将return语句分配给变量。如果您希望为active
分配值true
或false
,只需删除return
s:
var active = sort.attr('selected') ? true : false;
或者更好:
var active = sort.prop('selected');
因为.prop
始终返回true
或false
,无论初始标记属性如何。
答案 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 type
。return xxx
不是表达。
来自维基百科:
表达式是一个句法结构,它必须是格式良好的:允许的运算符必须在正确的位置具有正确数量的输入,组成这些输入的字符必须有效,具有明确的操作顺序,违反语法规则的符号串格式不正确,并且不是有效的数学表达式。
因此,在您的情况下,您可以使用:
return sort.attr('selected') ? true : false