Ich muss true oder false zurückgeben, wenn eine Option in einer Dropdown-Liste ausgewählt wurde.
Das ist mein Code:
var active = sort.attr('selected') ? return true : return false;
Ich erhalte die Fehlermeldung, dass die erste return
unerwartet ist.
Warum?
Sie können einer Variablen keine return-Anweisung zuordnen. Wenn active
der Wert true
oder false
zugewiesen werden soll, löschen Sie einfach die return
s:
var active = sort.attr('selected') ? true : false;
oder vielleicht besser:
var active = sort.prop('selected');
da .prop
unabhängig vom ursprünglichen Tag-Attribut immer true
oder false
zurückgibt.
Sie können von einem ternären Operator in Javascript wie folgt zurückkehren:
return sort.attr('selected') ? true : false;
warum nicht gerade das?
return sort.attr('selected');
Aus den Dokumenten:
Syntax
condition ? expr1 : expr2
Parameter
Bedingung (oder Bedingungen) Ein Ausdruck, der als wahr oder falsch ausgewertet wird.
Ausdruck1, Ausdruck2
Ausdrücke mit Werten eines beliebigen Typs.
Sie sollten auf den Expressions with values of any type
. Achten, der return xxx
ist kein Ausdruck.
Von Wikipedia:
Ein Ausdruck ist ein syntaktisches Konstrukt. Er muss wohlgeformt sein: Die zulässigen Operatoren müssen die korrekte Anzahl von Eingaben an den richtigen Stellen haben, die Zeichen, aus denen diese Eingaben bestehen, müssen gültig sein, eine klare Reihenfolge der Operationen haben usw. Zeichenfolgen von Symbolen, die gegen die Regeln der Syntax verstoßen, sind nicht wohlgeformt und keine gültigen mathematischen Ausdrücke.
In Ihrem Fall können Sie also Folgendes verwenden:
return sort.attr('selected') ? true : false
Nur ein Kommentar zu Ihrem Code:
> sort.attr('selected')
scheint die jQuery attr -Methode zu verwenden, die früher versucht hat, zu erraten, was Sie wollten, und das Attribut oder die Eigenschaft zurückgibt. Ich denke, in den letzten Versionen gibt es das Attribut immer zurück.
Das Vorhandensein des Attributs selected bedeutet jedoch nur, dass das Element (ein Optionselement?) Die ausgewählte Option default ist. Dies bedeutet nicht, dass es sich um das ausgewählte derzeit handelt Möglichkeit. Dazu benötigen Sie die ausgewählte property (jQuery prop method). Und da die selected -Eigenschaft ein Boolean ist:
> sort.attr('selected') ? true : return false;
kann einfach sein:
sort.prop('selected');
oder ohne jQuery:
optionElement.selected;