Тернарный оператор с операторами return JavaScript
мне нужно вернуть true или false, если выбрана опция в раскрывающемся списке.
Это мой код:
var active = sort.attr('selected') ? return true : return false;
Я получаю ошибку, что первый return
неожиданное.
почему?
5 ответов
нельзя назначить переменной оператор 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;
просто комментарий к вашему коду:
> sort.attr('selected')
кажется, использует jQuery attr метод, который использовал, чтобы попытаться угадать, что вы хотели, и вернуть атрибут или свойство. Я думаю, что в последних версиях он всегда возвращает атрибут.
в любом случае, наличие избранные атрибут означает только, что элемент (элемент option?) является по умолчанию выбранная опция, это не значит, что это в настоящее время выбранный вариант. Для этого вам нужно выбрать свойства (jQuery prop метод). И с тех пор избранные свойство является логическим:
> sort.attr('selected') ? true : return false;
можно просто:
sort.prop('selected');
или без jQuery:
optionElement.selected;
документы:
синтаксис
condition ? expr1 : expr2
параметры
условие (или условия) Выражение, которое принимает значение true или false.
expr1, expr2
Выражения со значениями любого типа.
вы должны обратить внимание на Expressions with values of any type
. тег return xxx
- это не выражение.
из Википедии:
выражение-это синтаксическая конструкция должна быть хорошо сформирована: допустимые операторы должны иметь правильное количество входов в правильных местах, символы, составляющие эти входы, должны быть допустимыми, иметь четкий порядок операций и т. д. Строки символов, нарушающие правила синтаксиса, плохо сформированы и не являются допустимыми математическими выражениями.
так, в вашем случае вы можете использовать:
return sort.attr('selected') ? true : false