Możesz usunąć istniejące opcje za pomocą empty
metody, a następnie dodać nowe opcje:
var option = $('<option></option>').attr("value", "option value").text("Text");
$("#selectId").empty().append(option);
Jeśli masz nowe opcje w obiekcie, możesz:
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));
});
Edycja: Aby usunąć wszystkie opcje oprócz pierwszej, możesz użyć :gt
selektora, aby uzyskać wszystkie option
elementy o indeksie większym niż zero i remove
je:
$('#selectId option:gt(0)').remove(); // remove all options, but not the first
$('#selectId').selectpicker('refresh'); $('#selectId').selectpicker('render');
. W przeciwnym razie nowe opcje nie będą widoczne na liście wyboru.$el.append($('<option/>', { value: value, text: key }));
Wrzuciłem doskonałą odpowiedź CMS do szybkiego rozszerzenia jQuery:
Oczekuje tablicy obiektów zawierających klucze „tekst” i „wartość”. Zatem użycie jest następujące:
źródło
gdzie comboBx jest identyfikatorem twojego pola kombi.
lub możesz dołączyć opcje jako ciąg znaków do już istniejącego innerHTML, a następnie przypisać do wybranego innerHTML.
Edytować
Jeśli chcesz zachować pierwszą opcję i usunąć wszystkie pozostałe, możesz użyć
źródło
Z jakiegoś dziwnego powodu ta część
z rozwiązania CMS nie działało dla mnie, więc zamiast tego po prostu tego użyłem
I to działa. Mój działający kod wygląda teraz tak:
źródło
Usuwanie i dodawanie elementu DOM przebiega wolniej niż modyfikacja istniejącego.
Jeśli zestawy opcji mają tę samą długość, możesz zrobić coś takiego:
W przypadku, gdy nowy zestaw opcji ma inną długość, możesz usunąć / dodać puste potrzebne opcje, korzystając z techniki opisanej powyżej.
źródło
Jeśli na przykład kod HTML zawiera ten kod:
Aby zmienić listę opcji w swoim zaznaczeniu, możesz użyć tego kodu poniżej. kiedy twoje imię wybierz nazwane selectId .
w powyższym przykładzie zmieniam starą listę opcji tylko o jedną nową opcję.
źródło
czy to pomaga?
źródło
Stara szkoła ręcznego robienia rzeczy zawsze była dla mnie dobra.
Wyczyść zaznaczenie i pozostaw pierwszą opcję:
Jeśli Twoje dane pochodzą z Json lub cokolwiek innego (po prostu Zbierz dane):
Mój Json Objetc:
To rozwiązanie jest idealne do pracy z Ajax i odpowiedzi w Json z bazy danych.
źródło
jeśli
<select>
stale aktualizujemy i musimy zapisać poprzednią wartość:źródło