Wie füge ich einer DropDownList mit jQuery eine neue Option hinzu?
Vielen Dank
jquery
user-interface
drop-down-menu
Fleisch
quelle
quelle
Antworten:
Ohne zusätzliche Plugins zu verwenden,
Wenn Sie viele Optionen hatten oder dieser Code sehr häufig ausgeführt werden musste, sollten Sie ein DocumentFragment verwenden, anstatt das DOM unnötig oft zu ändern. Für nur eine Handvoll Optionen würde ich sagen, dass es sich jedoch nicht lohnt.
------------------------------- Hinzugefügt ------------------ --------------
DocumentFragment
ist eine gute Option zur Geschwindigkeitsverbesserung, aber wir können kein Optionselement mit erstellen,document.createElement('option')
da IE6 und IE7 dies nicht unterstützen.Wir können ein neues Auswahlelement erstellen und dann alle Optionen anhängen. Wenn die Schleife beendet ist, hängen Sie sie an das eigentliche DOM-Objekt an.
Auf diese Weise ändern wir DOM nur einmal!
quelle
val
undtext
beschreibe tatsächlich die Variablen und ihre Verwendung.mySelect.append(new Option(text, val));
, was in IE8 nicht funktioniert hat. Ich musste zu @ nickf's wechselnmySelect.append($('<option></option>').val(val).html(text));
.attr('selected', true|false)
Ohne Plug-Ins kann dies einfacher sein, ohne so viel jQuery zu verwenden, statt etwas älter zu werden:
Wenn Sie angeben möchten, ob die Option a) der standardmäßig ausgewählte Wert ist und b) jetzt ausgewählt werden soll, können Sie zwei weitere Parameter übergeben:
quelle
"<option></option>"
Methode; das scheint dreckig.Mit dem Plugin: jQuery Selection Box . Du kannst das:
quelle
Möglicherweise möchten Sie Ihr DropDown zuerst löschen $ ('# DropDownQuality'). Empty ();
Ich ließ meinen Controller in MVC eine Auswahlliste mit nur einem Element zurückgeben.
quelle
Fügen Sie am Anfang ein Element zur Liste hinzu
Fügen Sie am Ende ein Element zur Liste hinzu
Allgemeine Dropdown-Operation (Abrufen, Festlegen, Hinzufügen, Entfernen) mit jQuery
quelle
.prepend("...") / $("...")
zu.prepend('...') / $('...')
würde das Snippet reparieren.Bitte beachten Sie, dass die Lösung von @ Phrogz in IE 8 nicht funktioniert, während die von @ nickf in allen gängigen Browsern funktioniert. Ein anderer Ansatz ist:
quelle
Sie können direkt verwenden
$"(.ddlClassName").Html("<option selected=\"selected\" value=\"1\">1</option><option value=\"2\">2</option>")
-> Hier kannst du einen direkten String verwenden
quelle
Verwenden Sie außerdem .prepend (), um die Option am Anfang der Optionsliste hinzuzufügen. http://api.jquery.com/prepend/
quelle
mit jquery können Sie verwenden
Dabei ist " myid " die ID der Dropdown-Liste und newvalue der Text, den Sie einfügen möchten.
quelle
Ich musste Dropdowns so viele Optionen hinzufügen, wie Dropdowns auf meiner Seite vorhanden waren. Also habe ich es so benutzt:
Dadurch wurden Dropdowns dynamisch mit Werten wie 1 bis n eingerichtet und automatisch der Wert für die Reihenfolge ausgewählt, in der sich das Dropdown befand (dh das zweite Dropdown-Menü wurde mit "2" in der Box usw. versehen).
Es war lächerlich , dass ich nicht nutzen konnte
this
oderthis.Object
oder$.obj
oder so etwas in meinem zweiten.each()
, obwohl --- ich tatsächlich hatte , um die spezifische ID des Objekts zu erhalten und dann das ganze Objekt zu meiner Funktion greifen und übergeben , bevor sie anhängen würde. Glücklicherweise wurde die ID meines Dropdowns durch ein "_" getrennt und ich konnte sie abrufen. Ich habe nicht das Gefühl, dass ich es hätte tun müssen, aber es gab mir immer wieder jQuery-Ausnahmen. Etwas, das andere mit dem zu kämpfen hatten, was ich war, könnte es genießen, es zu wissen.quelle
Nehmen wir an, Ihre Antwort lautet "successData". Diese enthält eine Liste, die Sie als Optionen in einem Dropdown-Menü hinzufügen müssen.
Das würde für dich funktionieren ....
quelle
Versuchen Sie diese Funktion:
quelle