ドロップダウンのオプションが選択されている場合、trueまたはfalseを返す必要があります。
これは私のコードです:
var active = sort.attr('selected') ? return true : return false;
最初のreturn
が予期しないというエラーが表示されます。
どうして?
Returnステートメントを変数に割り当てることはできません。 active
に値true
またはfalse
を割り当てるには、return
sを削除します。
var active = sort.attr('selected') ? true : false;
または多分良い:
var active = sort.prop('selected');
.prop
は、初期タグ属性に関係なく、常にtrue
またはfalse
を返します。
次のようなjavascriptの三項演算子から戻ることができます。
return sort.attr('selected') ? true : false;
なぜこれだけではないのですか?
return sort.attr('selected');
コードへのコメント:
> 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;
ドキュメントから:
構文
condition ? expr1 : expr2
パラメーター
condition(or conditions)trueまたはfalseに評価される式。
expr1、expr2
任意のタイプの値を持つ式。
Expressions with values of any type
に注意する必要があります。return xxx
は式ではありません。
ウィキペディアから:
式は構文構造であり、整形式である必要があります。許可された演算子は正しい場所に正しい数の入力を持っている必要があり、これらの入力を構成する文字は有効である必要があります。構文の規則に違反する記号の形式は整形式ではなく、有効な数式ではありません。
したがって、あなたの場合には次のものを使用できます:
return sort.attr('selected') ? true : false