web-dev-qa-db-ja.com

returnステートメントを持つ三項演算子JavaScript

ドロップダウンのオプションが選択されている場合、trueまたはfalseを返す必要があります。

これは私のコードです:

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

最初のreturnが予期しないというエラーが表示されます。

どうして?

46
JDillon522

Returnステートメントを変数に割り当てることはできません。 activeに値trueまたはfalseを割り当てるには、returnsを削除します。

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

または多分良い:

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

.propは、初期タグ属性に関係なく、常にtrueまたはfalseを返します。

45
user2625787

次のようなjavascriptの三項演算子から戻ることができます。

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

なぜこれだけではないのですか?

 return sort.attr('selected');
9
nightograph

コードへのコメント:

> sort.attr('selected')

jQuery attr メソッドを使用しているようです。このメソッドは、必要なものを2番目に推測して属性またはプロパティを返します。最近のバージョンでは、常に属性を返すと思います。

とにかく、selected属性の存在は、アイテム(オプション要素?)がdefault選択されたオプション、それがcurrently選択されたオプションであることを意味するものではありません。そのためには、選択したproperty(jQuery prop メソッド)が必要です。そして、selectedプロパティはブール値であるため:

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

単にすることができます:

 sort.prop('selected');

またはjQueryなし:

 optionElement.selected;
2
RobG

ドキュメントから:

構文
condition ? expr1 : expr2
パラメーター
condition(or conditions)trueまたはfalseに評価される式。
expr1、expr2
任意のタイプの値を持つ式。

Expressions with values of any typeに注意する必要があります。return xxxは式ではありません。

ウィキペディアから:

式は構文構造であり、整形式である必要があります。許可された演算子は正しい場所に正しい数の入力を持っている必要があり、これらの入力を構成する文字は有効である必要があります。構文の規則に違反する記号の形式は整形式ではなく、有効な数式ではありません。

したがって、あなたの場合には次のものを使用できます:

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