Comme le dit la question, comment ajouter une nouvelle option à une DropDownList à l'aide de jQuery?
Merci
jquery
user-interface
drop-down-menu
la chair
la source
la source
Réponses:
Sans utiliser de plugins supplémentaires,
Si vous aviez beaucoup d'options ou que ce code devait être exécuté très fréquemment, vous devriez envisager d'utiliser un DocumentFragment au lieu de modifier le DOM plusieurs fois inutilement. Pour seulement quelques options, je dirais que cela n'en vaut pas la peine.
------------------------------- Ajoutée ------------------ --------------
DocumentFragment
est une bonne option pour l'amélioration de la vitesse, mais nous ne pouvons pas créer d'élément d'option en utilisantdocument.createElement('option')
puisque IE6 et IE7 ne le prennent pas en charge.Ce que nous pouvons faire, c'est créer un nouvel élément de sélection, puis ajouter toutes les options. Une fois la boucle terminée, ajoutez-la à l'objet DOM réel.
De cette façon, nous ne modifierons le DOM qu'une seule fois!
la source
val
ettext
décris en fait les variables et leur utilisation.mySelect.append(new Option(text, val));
, ce qui ne fonctionnait pas dans IE8. Je devais passer à @ nickfmySelect.append($('<option></option>').val(val).html(text));
.attr('selected', true|false)
Sans plug-in, cela peut être plus facile sans utiliser autant de jQuery, au lieu d'aller un peu plus à l'ancienne:
Si vous souhaitez spécifier si l'option a) est la valeur sélectionnée par défaut et b) doit être sélectionnée maintenant, vous pouvez passer deux paramètres supplémentaires:
la source
"<option></option>"
méthode; cela semble sale.Avec le plugin: Boîte de sélection jQuery . Tu peux le faire:
la source
Vous voudrez peut-être d'abord effacer votre DropDown $ ('# DropDownQuality'). Empty ();
J'ai eu mon contrôleur dans MVC renvoyer une liste de sélection avec un seul élément.
la source
Ajouter un élément à la liste au début
Ajouter un élément à la liste à la fin
Opération de liste déroulante commune (Get, Set, Add, Remove) à l'aide de jQuery
la source
.prepend("...") / $("...")
pour.prepend('...') / $('...')
corriger l'extrait de code.Veuillez noter que la solution de @ Phrogz ne fonctionne pas dans IE 8 tandis que celle de @ nickf fonctionne dans tous les principaux navigateurs. Une autre approche est:
la source
Vous pouvez utiliser directement
$"(.ddlClassName").Html("<option selected=\"selected\" value=\"1\">1</option><option value=\"2\">2</option>")
-> Ici, vous pouvez utiliser une chaîne directe
la source
Et aussi, utilisez .prepend () pour ajouter l'option au début de la liste d'options. http://api.jquery.com/prepend/
la source
en utilisant jquery, vous pouvez utiliser
où " myid " est l' id de la liste déroulante et newvalue est le texte que vous souhaitez insérer.
la source
Je devais ajouter autant d'options aux listes déroulantes qu'il y avait de listes déroulantes sur ma page. Je l'ai donc utilisé de cette façon:
Cela a créé dynamiquement des listes déroulantes avec des valeurs comme 1 à n, et a automatiquement sélectionné la valeur de l'ordre dans lequel la liste déroulante était (c.-à-d. Que la deuxième liste déroulante a obtenu "2" dans la case, etc.).
C'était ridicule que je ne puisse pas utiliser
this
outhis.Object
ou$.obj
ou quelque chose comme ça dans mon 2e.each()
, cependant --- j'ai dû en fait obtenir l'ID spécifique de cet objet, puis saisir et transmettre cet objet entier à ma fonction avant qu'il ne soit ajouté. Heureusement, l'ID de ma liste déroulante a été séparée par un "_" et j'ai pu la saisir. Je ne pense pas que j'aurais dû le faire, mais cela me donnait des exceptions jQuery dans le cas contraire. Quelque chose que les autres aux prises avec ce que j'étais pourrait aimer savoir.la source
Imaginons que votre réponse soit "successData". Il contient une liste que vous devez ajouter comme options dans un menu déroulant.
Cela fonctionnerait pour vous ....
la source
essayez cette fonction:
la source