Wo lb ein Listenfeld ist, txtfield ist ein Textfeld, dieser Code nimmt alle Werte der Optionen, legt sie in ein Array und erstellt daraus eine durch Kommas getrennte Liste:
%Vor%lb.options.toString () funktioniert offensichtlich nicht, weil es ein Array von Optionen (Wert und Text) ist. Ich habe nichts Succint gefunden als das.
Was ist der jQuery-Weg, dies zu tun? Ich habe versucht, mit $(lb).each()
herumzuspielen, aber ich kann es anscheinend nicht auf die gleiche Weise zum Laufen bringen.
Diese verwendet .map()
, um ein jQuery-Objekt zu erstellen, indem value
von jedem option
und dann .get()
, um das Array aus dem Objekt zu extrahieren.
BEARBEITEN Wie @Nick Craver im Kommentar unten notiert ist, wenn Sie Um eine optimale Leistung zu erhalten (mit jQuery), ist es sinnvoller die $.map()
Variation zu verwenden, als Sie bereits haben eine Sammlung. Siehe sein Antwort für Details.
BEARBEITEN: Um eine bessere Leistung zu erzielen, führen Sie Ihre for
-Schleife aus, aber cachen Sie die Verweise auf die Eigenschaften. Es macht einen Unterschied .
Könnte es so gemacht werden, aber ich bin mir nicht sicher, was Sie erreichen wollen?
%Vor%Siehe Demo hier: Fiddler Demo
Sie können die mehrfach ausgewählte Option Textwerte mit Trennzeichen erhalten.
Tags und Links javascript jquery dom