Quelle est la façon la plus simple d'ajouter un option
à une liste déroulante à l'aide de jQuery?
Est-ce que ça va marcher?
$("#mySelect").append('<option value=1>My option</option>');
javascript
jquery
Cliquez Upvote
la source
la source
$("#mySelect").html(....)
pour remplacer les options actuelles par les nouvelles.Réponses:
Cela n'a PAS fonctionné dans IE8 (mais l'a fait dans FF):
Ce travail DID:
la source
display: table;
n'est PAS appliqué comme style à l'élément de sélection. Cela cassera le code jsvar o = new Option('option text', 'value'); o.innerHTML = 'option text'; document.getElementById('selectList').appendChild(o);
Personnellement, je préfère cette syntaxe pour ajouter des options:
Si vous ajoutez des options à partir d'une collection d'éléments, vous pouvez effectuer les opérations suivantes:
la source
items={option1:{value:1,text:1},option2:{value:2,text:2}}
Vous pouvez ajouter une option en utilisant la syntaxe suivante, vous pouvez également visiter l' option de traitement de manière dans jQuery pour plus de détails.
la source
value
au lieu deval
). Le bon code devrait être$('select').append('<option value="1">One</option>');
Si le nom ou la valeur de l'option est dynamique, vous ne voudrez pas vous soucier de lui échapper des caractères spéciaux; dans ce cas, vous préférerez peut-être des méthodes DOM simples:
la source
Option 1-
Vous pouvez essayer ceci-
Comme ça-
Option 2-
Ou essayez ceci-
Comme ça-
la source
C'est très simple:
ou
la source
Ça marche bien.
Si vous ajoutez plusieurs éléments d'option, je recommanderais d'effectuer l'ajout une fois plutôt que d'effectuer un ajout sur chaque élément.
la source
pour une raison quelconque, faire
$("#myselect").append(new Option("text", "text"));
ne fonctionne pas pour moi dans IE7 +Je devais utiliser
$("#myselect").html("<option value='text'>text</option>");
la source
Pour améliorer les performances, essayez de ne modifier le DOM qu'une seule fois, d'autant plus si vous ajoutez de nombreuses options.
la source
string.join()
pour concaténer des chaînesla source
selectmenu()
ne fait pas partie du noyau jQuery et est un widget jQueryUI . Cela en fait une solution assez lourde, non?J'aime utiliser une approche non jquery:
la source
Vous pouvez ajouter des options dynamiquement dans la liste déroulante comme indiqué dans l'exemple ci-dessous. Ici, dans cet exemple, j'ai pris les données du tableau et lié ces valeurs au tableau déroulant comme indiqué dans la capture d'écran de sortie
Production:
la source
Non mentionné dans une réponse mais utile dans le cas où vous souhaitez que cette option soit également sélectionnée, vous pouvez ajouter:
la source
la source
Il y a deux façons. Vous pouvez utiliser l'un des deux.
Première:
Seconde:
la source
Si vous souhaitez insérer la nouvelle option à un index spécifique dans la sélection:
Cela insérera le "Nouvel élément" comme 3e élément dans la sélection.
la source
Vous pouvez ajouter et définir l'attribut Value avec du texte:
la source
Nous avons trouvé un problème lorsque vous ajoutez une option et utilisez jquery validate. Vous devez cliquer sur un élément dans la liste de sélection multiple. Vous allez ajouter ce code pour gérer:
la source
la source
Ce ne sont que quelques points rapides pour de meilleures performances
toujours lorsque vous avez affaire à de nombreuses options, créez une grande chaîne, puis ajoutez-la au "select" pour de meilleures performances
fg
var $ mySelect = $ ('# mySelect'); var str = '';
Même plus vite
la source
Si vous obtenez des données d'un objet, transférez simplement cet objet pour qu'il fonctionne ...
Le nom et l'id sont des noms de propriétés d'objet ... vous pouvez donc les appeler comme bon vous semble ... Et bien sûr, si vous avez un tableau ... vous voulez créer une fonction personnalisée avec pour la boucle for ... document prêt ... Santé
la source
Basé sur la réponse de dule pour avoir ajouté une collection d'articles, un doublure
for...in
fera également des merveilles:Les valeurs d'objet et les index sont affectés aux options. Cette solution fonctionne même dans l'ancien jQuery (v1.4) !
la source
si vous avez optgroup dans select , vous avez une erreur dans DOM.
Je pense que le meilleur moyen:
la source
Vous pouvez essayer le code ci-dessous pour ajouter à l'option
la source
la source
C'est ainsi que je l'ai fait, avec un bouton pour ajouter chaque balise de sélection.
la source
$(document).ready(function(){ $("#button").click(function() { $('#id_table_AddTransactions').append('<option></option>'); }); });
Vous pouvez le faire dans ES6:
la source
Si quelqu'un vient ici à la recherche d'un moyen d'ajouter des options avec des propriétés de données
Utiliser attr
Utilisation des données - version ajoutée 1.2.3
la source