Vous pouvez supprimer les options existantes à l'aide de la empty
méthode, puis ajouter vos nouvelles options:
var option = $('<option></option>').attr("value", "option value").text("Text");
$("#selectId").empty().append(option);
Si vous avez vos nouvelles options dans un objet, vous pouvez:
var newOptions = {"Option 1": "value1",
"Option 2": "value2",
"Option 3": "value3"
};
var $el = $("#selectId");
$el.empty(); // remove old options
$.each(newOptions, function(key,value) {
$el.append($("<option></option>")
.attr("value", value).text(key));
});
Edit: Pour supprimer toutes les options sauf la première, vous pouvez utiliser le :gt
sélecteur, pour obtenir tous les option
éléments avec un index supérieur à zéro et remove
eux:
$('#selectId option:gt(0)').remove(); // remove all options, but not the first
$('#selectId').selectpicker('refresh'); $('#selectId').selectpicker('render');
. Sinon, les nouvelles options ne seront pas visibles dans votre liste de sélection.$el.append($('<option/>', { value: value, text: key }));
J'ai jeté l'excellente réponse de CMS dans une extension jQuery rapide:
Il attend un tableau d'objets contenant des clés "texte" et "valeur". Donc, l'utilisation est la suivante:
la source
où comboBx est votre identifiant de zone de liste modifiable.
ou vous pouvez ajouter des options sous forme de chaîne au innerHTML déjà existant, puis l'affecter au select innerHTML.
Éditer
Si vous devez conserver la première option et supprimer toutes les autres, vous pouvez utiliser
la source
Pour une raison étrange, cette partie
de la solution CMS n'a pas fonctionné pour moi, donc au lieu de cela, j'ai simplement utilisé cela
Et ça marche. Donc mon code de travail ressemble maintenant à ça:
la source
La suppression et l'ajout d'un élément DOM sont plus lents que la modification d'un élément existant.
Si vos jeux d'options ont la même longueur, vous pouvez faire quelque chose comme ceci:
Dans le cas où votre nouveau jeu d'options a une longueur différente, vous pouvez supprimer / ajouter des options vides dont vous avez vraiment besoin, en utilisant une technique décrite ci-dessus.
la source
Si par exemple votre code html contient ce code:
Afin de changer la liste des options dans votre sélection, vous pouvez utiliser ce code ci-dessous. lorsque votre nom sélectionnez nommé selectId .
dans cet exemple ci-dessus, je change l'ancienne liste d' options par une seule nouvelle option.
la source
est-ce que cela aide?
la source
La vieille école de faire les choses à la main a toujours été bonne pour moi.
Nettoyez la sélection et laissez la première option:
Si vos données proviennent d'un Json ou autre chose (Concattez simplement les données):
Mon Json Objetc:
Cette solution est idéale pour travailler avec Ajax et répond dans Json à partir d'une base de données.
la source
si nous mettons à jour
<select>
constamment et que nous devons sauvegarder la valeur précédente:la source