Очистить выпадающий список с помощью JQuery
Я написал эту маленькую функцию, чтобы заполнить выпадающий список с данными с сервера.
function fillDropDown(url, dropdown) {
$.ajax({
url: url,
dataType: "json"
}).done(function (data) {
// Clear drop down list
$(dropdown).find("option").remove(); <<<<<< Issue here
// Fill drop down list with new data
$(data).each(function () {
// Create option
var $option = $("<option />");
// Add value and text to option
$option.attr("value", this.value).text(this.text);
// Add option to drop down list
$(dropdown).append($option);
});
});
}
затем я могу вызвать функцию таким образом:
fillDropDown("/someurl/getdata", $("#dropdownbox1"))
все работает отлично, за исключением одной строки, где я очищаю старые данные из выпадающего списка. Что я делаю не так?
любые советы, которые могут помочь улучшить этот код также высоко оценены.
4 ответов:
просто использовать
.empty():// snip... }).done(function (data) { // Clear drop down list $(dropdown).empty(); // <<<<<< No more issue here // Fill drop down list with new data $(data).each(function () { // snip...
там же более лаконичный способ чтобы создать параметры:
// snip... $(data).each(function () { $("<option />", { val: this.value, text: this.text }).appendTo(dropdown); });
Я пытался как
.empty()а также.remove()для моего выпадающего списка и оба были медленными. Так как у меня там было почти 4000 вариантов.Я
.html("")что гораздо быстрее в моем состоянии.
Который находится ниже$(dropdown).html("");
<select id="ddlvalue" name="ddlvaluename"> <option value='0' disabled selected>Select Value</option> <option value='1' >Value 1</option> <option value='2' >Value 2</option> </select> <input type="submit" id="btn_submit" value="click me"/> <script> $('#btn_submit').on('click',function(){ $('#ddlvalue').val(0); }); </script>
как насчет хранения нового
optionsнаvariable, а затем с помощью.html(variable)для замены данных вcontainer?
Comments