Тернарный оператор с операторами return JavaScript

Мне нужно вернуть true или false, если выбрана опция в выпадающем списке.

Это мой код:

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

Я получаю сообщение об ошибке, что первый return является неожиданным.

Почему?

Ответ 1

Вы не можете назначить оператор return переменной. Если вы хотите, чтобы active было назначено значение true или false, просто удалите return s:

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

или, может быть, лучше:

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

поскольку .prop всегда возвращает true или false, независимо от исходного атрибута тега.

Ответ 2

Вы можете вернуться от тройного оператора в javascript следующим образом:

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

Ответ 3

почему не только это?

 return sort.attr('selected');

Ответ 4

Просто комментарий к вашему коду:

> sort.attr('selected')

похоже, использует метод jQuery attr, который использовался, чтобы попытаться и угадать, что вы хотели, и вернуть либо атрибут, либо имущество. Я думаю, что в последних версиях он всегда возвращает атрибут.

В любом случае наличие выбранного атрибута означает, что элемент (элемент option?) является по умолчанию, это не означает, что это в настоящее время выбранный вариант. Для этого вам потребуется выбранный свойство (jQuery prop). И так как выбранное свойство является логическим:

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

может быть просто:

 sort.prop('selected');

или без jQuery:

 optionElement.selected;