如果选择了下拉列表中的选项,我需要返回 true 或 false。
这是我的代码:
var active = sort.attr('selected') ? return true : return false;
我收到一个错误,第一个return
是意外的。
为什么?
如果选择了下拉列表中的选项,我需要返回 true 或 false。
这是我的代码:
var active = sort.attr('selected') ? return true : return false;
我收到一个错误,第一个return
是意外的。
为什么?
您可以从 javascript 中的三元运算符返回,如下所示:
return sort.attr('selected') ? true : false;
您不能将 return 语句分配给变量。如果要active
分配值true
or false
,只需删除return
s:
var active = sort.attr('selected') ? true : false;
或者更好:
var active = sort.prop('selected');
因为.prop
总是返回true
or false
,无论初始标签属性如何。
为什么不只是这个?
return sort.attr('selected');
从文档:
语法
condition ? expr1 : expr2
参数
条件(或条件)计算结果为真或假的表达式。
expr1, expr2
具有任何类型值的表达式。
你应该注意Expressions with values of any type
.,return xxx
不是表达式。
来自维基百科:
表达式是一种句法结构,它必须是格式良好的:允许的运算符必须在正确的位置有正确数量的输入,组成这些输入的字符必须是有效的,具有明确的操作顺序等。违反语法规则的符号的格式不正确并且不是有效的数学表达式。
因此,在您的情况下,您可以使用:
return sort.attr('selected') ? true : false
只是对您的代码的评论:
> sort.attr('selected')
似乎正在使用 jQuery attr方法,该方法用于尝试并再次猜测您想要什么并返回属性或属性。我认为在最近的版本中它总是返回属性。
无论如何,selected属性的存在仅意味着该项目(选项元素?)是默认选择的选项,并不意味着它是当前选择的选项。为此,您需要 selected属性(jQuery prop方法)。并且由于selected属性是布尔值:
> sort.attr('selected') ? true : return false;
可以简单地是:
sort.prop('selected');
或者没有 jQuery:
optionElement.selected;